YZM 2105 Nesneye Yönelik Programlama

Benzer belgeler
YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama

YZM 2108 Yazılım Mimarisi ve Tasarımı

YZM 2105 Nesneye Yönelik Programlama

BİL-141 Bilgisayar Programlama I (Java)

YZM 2105 Nesneye Yönelik Programlama

Nesne Tabanlı Programlama. Ders Notları

YZM 2105 Nesneye Yönelik Programlama

YZM 2108 Yazılım Mimarisi ve Tasarımı

NESNE TABANLI PROGRAMLAMA

Kalıtım (Inheritance)

Nesneye Yönelik Programlama (OOP) 7.Hafta

Sınıf Diyagramları Amaç: Sınıf Diyagramları Nasıl Çizilir?

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

YZM 2105 Nesneye Yönelik Programlama

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1

C++ Dersi: Nesne Tabanlı Programlama

Nesne Yönelimli Programlama

ALGORİTMA VE PROGRAMLAMA II

Programlama Dillerinde Kullanılan Veri Tipleri

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma

YZM 2116 Veri Yapıları

Nesne Yönelimli Programlama

Ders 8 Konu Özeti ve Problemler

NESNE TABANLI PROGRAMLAMA Temel Kavramlar

ANA SINIF TÜRETİLEN BİRİNCİ SINIF TÜRETİLEN İKİNCİ SINIF

NESNEYE YÖNELİK PROGRAMLAMA. Yrd.Doç.Dr. Zeynep ORMAN

Sunum İçeriği. Programlamaya Giriş

Nesne Yönelimli Programlama

ALGORİTMA VE PROGRAMLAMA II

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

ALGORİTMA VE PROGRAMLAMA II

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

YZM 2105 Nesneye Yönelik Programlama

Nesneye Dayalı Programlama

BTEP243 Ders 3. class Yazım Kuralı:

SINIF YAPISI ve NESNE YÖNELİMLİ PROGRAMLAMA NESNE YÖNELİMLİ PROGRAMLAMA

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

ALGORİTMA VE PROGRAMLAMA II

YZM 2108 Yazılım Mimarisi ve Tasarımı

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır.

HSancak Nesne Tabanlı Programlama I Ders Notları

YZM 2116 Veri Yapıları

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 6. Yrd.Doç.Dr.Hacer Karacan

Karabük Üniversitesi, Mühendislik Fakültesi... WEB TEKNOLOJİLERİ

TÜMLEŞİK MODELLEME DİLİ. UML (Unified Modeling Language)

Görsel Programlama-I (Visual Programming) 1.Hafta

YZM 2105 Nesneye Yönelik Programlama

YZM 2108 Yazılım Mimarisi ve Tasarımı

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir;

1. SINIFLAR Sınıf (Class) Mantığı

İçerik. Kapsülleme ( Encapsulation ) Java da Kalıtım: Örnek 2.1. Kalıtım ( Inheritance ) Tekrar Ziyaret. Java da Kalıtım: Örnek 2.2.

public static int Toplam int x, int y

NESNEYE YÖNELİK PROGRAMLAMA Temel Kavramlar

Nesne Yönelimli Programlamaya Giriş - 2. Cem Ahmet MERCAN 16/04/2009

ALGORİTMA VE PROGRAMLAMA II

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

YZM 3215 İleri Web Programlama

Lecture 11: Generics

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır.

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

İNTERNET TABANLI PROGRAMLAMA

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

NESNE TABANLI PROGRAMLAMA

Kapsülleme ( Encapsulation ) BBS-515 Nesneye Yönelik Programlama

ALGORİTMA VE PROGRAMLAMA II

YZM 2108 Yazılım Mimarisi ve Tasarımı

C++ Dersi: Nesne Tabanlı Programlama

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN

HSancak Nesne Tabanlı Programlama I Ders Notları

PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI. BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN

Mantıksal İşlemler. 7.1 true, false, nil

Görsel Programlama-I (Visual Programming) 2.Hafta

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

YZM 3215 İleri Web Programlama

BİL-142 Bilgisayar Programlama II

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

Yazılım Kodlama ve İ simlendirme Standartları v1.0

NESNE MODELLERİ : SINIFLAR

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

WEB PROGRAMLAMA II. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

Nesne Tabanlı Programlama

ALGORİTMA VE PROGRAMLAMA I

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2

ALGORİTMA VE PROGRAMLAMA I

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I

VERİ YAPILARI DERS NOTLARI BÖLÜM 1 GİRİŞ. Yard. Doç. Dr. Deniz KILINÇ

C++ Dersi: Nesne Tabanlı Programlama

HSancak Nesne Tabanlı Programlama I Ders Notları

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

Klavyeden Basit Giriş/Çıkış İşlemleri

NESNEYE YÖNELİK PROGRAMLAMA

Transkript:

YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1

BÖLÜM - 3 Nesneye Yönelik Programlamaya Giriş Bu bölümde; Nesneye Yönelik Programlama Tarihçesi Nesneye Yönelik Programlamanın Farklılıkları Nesne Kavramı Sınıf Kavramı Sınıf Oluşturulması Örnek Sınıflar ile ilgili konular anlatılacaktır. 2

Nesneye Yönelik Programlamaya Giriş Nesne yönelimli programlama (OOP), (Object Oriented Programming) nesneyi merkezine alan bir bilgisayar programlama yaklaşımıdır. Nesne yönelimli programlama terminolojisindeki object/nesne ve oriented/yönelimli kavramları ilk olarak 1960 lı yılların başında MIT tarafından yapay zeka ile çalışmalar yapılan araştırma grubunda özelliklere sahip maddeleri isimlendirirken object tanımı kullanıldı. 3

Nesneye Yönelik Programlamaya Giriş 1960lı yıllarda Oslo daki Norwegian Computing Center da Ole-Johan Dahl ve Kristen Nygaard tarafından geliştirilen ayrık olay simülasyonu için tasarlanan Simula I in en önemli versiyon ya da değiştirilmiş/özelleştirilmiş versiyonu olan Simula 67 de resmi olarak ilk object kavramı kullanıldı. Simula 67 nin temel prensipleri ve disiplinleri altında yatan daha sonraki birçok dil etkiledi ve kullanıldı. 4

Nesneye Yönelik Programlamaya Giriş 90 lı yıllarda programlama dillerine olan destek artınca nesne yönelimli programlama etkin ve yaygın olarak kullanılmaya başlandı. Nesneye yönelik programlamanın temel kavramları; Büyük programlar yazmayı kolaylaştıran soyutlama, Programları değiştirmeyi ve korumayı kolaylaştıran saklama ve Programları kolayca genişletilebilir kılan sınıf hiyerarşisi dir. 5

Soyutlama Önemli özelliklere odaklanabilmek için ayrıntıları göz ardı etme sürecidir. 6

Soyutlama Soyutlama temel olarak veri ve kontrol soyutlaması olarak yapılır. 1. Bir veri tipinin nasıl yapılandığının ayrıntılarını göz ardı etmemize izin veren soyutlama tarzına veri soyutlaması denir. 2. Kontrol soyutlaması ise yapısal programlama ile gelen altprogram, fonksiyon gibi kavramlar üzerinde yapılan soyutlamadır. 7

Soyutlama: Veri Soyutlaması Örnek: Bir Kisi nesnesinde, kişinin yaşını tutan bir tamsayı değişkeni olan yas değişkenini ele alalım. Bu yas değişkenine, programın çalıştırma anında, "-10" değerinin atanmasını kimse engelleyemez. İşte burada nesne yönelimli programlamanın getirdiği görünürlük ve özellik tanımlama gibi yetenekler kullanarak "yas" değerine gerçek bir değerin girilmesi garanti edilebilir. Buna veri soyutlaması adı verilir. 8

Soyutlama: Kontrol Soyutlaması Benzer şekilde soyutlama işleminin verileri taşıyan değişkenlerin değil de yöntem veya işlevlerin üzerinde yapılması işlemine kontrol soyutlaması adı verilir. Yani yöntem ile yapılan işlemlerin bir başka nesne tarafından müdahale edilemeyecek hale sokulması işlemidir. 9

Saklama Gerçek hayatta information hiding yöntemiyle sıkça karşılaşırız. Örneğin arabanın deposuna ne kadar yakıt kaldığını öğrenmek için depoya baktığımızda göremeyiz. Bunun yerine gerekli bilgiyi bize aracın gösterge panelindeki yakıt göstergesi vermektedir. 10

Yapısal Programlama vs. Nesneye Yönelik Programlama Yapısal Programlamada sadece bir soruna odaklı farklı fonksiyonlar yazılır ve sadece o sorun için fonksiyonlar bulunurlar. Dolayısıyla yapısal programlama yaklaşımıyla oluşturulmuş bir program binlerce ayrı isimde tanımlanmış değişken ve yüzlerce farklı fonksiyona sahiptir. En ufak işlem için bile ayrı fonksiyon oluşturulması gerekir ve bu programın karmaşıklığını arttırır. 11

Yapısal Programlama vs. Nesneye Yönelik Programlama Gerçek dünyadaki sistemler sadece fonksiyonlardan oluşmaz. Sistemin gerçeğe yakın bir modelini bilgisayarda oluşturmak zordur. 12

Yapısal Programlama vs. Nesneye Yönelik Programlama Nesneye yönelik programlama yaklaşımı doğaldır. Nesnelerden oluşan bir dünya düşünmek basittir. Nesneye Yönelik Programlama yaklaşımı ise yapısal programlama yaklaşımının daha genişletilmiş ve gerçeğe yakın versiyonudur. Değişkenler ve metotlar burada da kullanılır fakat burada nesne üzerine odaklanılır. Yapısal programlamadaki büyük ve karmaşık sistemleri tasarlamak yerine, birbiriyle iletişim ve etkileşim halinde nesnelerin olduğu bir dünya kolayca tasarlanabilir. Bu nesnelerin çalışması için ayrıca bir mantık oluşturmaya gerek kalmaz. 13

Yapısal Programlama vs. Nesneye Yönelik Programlama Nesneye yönelik programlama yaklaşımında, projenin erken safhalarında projeyi tamamlamak için gerekli olan tüm nesnelerin tanımlanması, nesneleri tanımlayan sınıfların yaratılması yatar. Böylece yaratılan her nesne kendi verisini kendinde barındırır ve diğer nesnelerin kendisinden istediği görevleri yerine getirir. 14

Nesne Kavramı ilk Tanım Nesne, niteliklere ve davranışlara sahip somut bir varlıktır. Bir nesnenin niteliği onun sahip olduğu özelliklerdir. Nesnenin bir niteliğinin değeri o nesnenin durumunu oluşturur. Bir nesnenin davranışları onun / onunla yapabildiği / yapılabilen işlemlerdir /operasyonlardır. 15

Örnek 1: Sipariş verme yazılımı Yapısal Programlama Çözümü Müşteri ve sipariş bilgileri ayrı değişkenlerde tutulurlar. Diziler kullanılır. Bu değişkenler üzerinden işlemler yapılır (sipariş ekle, tutar hesaplama, ödeme gerçekleştir ). Nesneye Yönelik Programlama Çözümü Programın içereceği nesnelerden birisi Siparis nesnesi olur. 16

Örnek 1: Sipariş verme yazılımı (devam ) Siparis nesnesi şunları içerir; Nitelik /özellik olarak; Sipariş Tarihi Müşteri Durumu Davranış olarak; Oluştur Öde Kalem Ekle / Çıkart Sevk Et 17

Örnek 1: Sipariş verme yazılımı (devam ) Sipariş verme yazılımının tasarımı için gereken tüm nesneler düşünülmeli ve nesnelerin nitelikleri / özellikleri ve davranışları tanımlanmalıdır. Başlıca nesneleri şunlar olmalıdır : Müsteri Nesnesi, Ödeme Nesnesi, Sipariş Detayı Nesnesi 18

Örnek 1: Sipariş verme yazılımı (devam ) 19

Örnek 1: Sipariş verme yazılımı (devam ) Her iki programlama yaklaşımıyla da doğru bir yazılım üretilebilir. Aynı zamanda iki programlama yaklaşımıyla da yeniden kullanılabilir modüller üretilebilir. İki programlama yaklaşımındaki önemli farklılıklar: Yazılımcının projenin erken safhalarındaki planlama ve düşünme farklılığı Üretilen programların karmaşıklıkları Yeni ihtiyaçların ve düzenlemelerin sisteme adapte edilmesindeki kolaylık 20

Örnek 2: Trafik Simülasyon Amaç: Bir şehrin trafik karışıklığını gidermek için gerçek zamanlı trafiği simüle eden bir simülasyonun yapılması gerekmektedir. Gerekli olan nesneler : Arac Nesnesi, Yaya Nesnesi, Trafik İşaretçileri Nesnesi Bu nesnelerin her biri kendi bilgilerini saklar ve kendi davranışlarına sahip olur. Böylelikle nesnelerin yardımcılığıyla bir şehrin trafiği gerçek zamanlı olarak simüle edilebilir. 21

Örnek 2: Trafik Simülasyon (devam ) Arac nesnesi Nitelikler Plaka Bilgisi Sürücü bilgisi Anlık Hızı Bilgisi Davranışlar Anlık Hız Değiştirme Metodu Trafik Kuralı Kontrol Metodu Yaya nesnesi Nitelikler Kimlik Numarası Anlık Hızı Davranışlar Anlık Hız Değiştirme Metodu Trafik Kuralı Kontrol Metodu 22

Örnek 3: Buton Nesnesi Buton nesnesi Nitelikler Formdaki konumu Rengi, Üzerindeki Yazısı Davranışlar Tıklandığında ekranın rengini değiştirmesi Sürükleyip bırakılabilmesi, Tıklanınca ses çıkarması 23

Nesneye Yönelik Programlama Bir programlama dilinin Nesneye Yönelik Programlama dili olması için şu özelliklere sahip olması gereklidir: 1. Sınıf (Class) 2. Nesneler (Object) 3. Kapsülleme ve Arayüz ( Encapsulation & Interface ) 4. Kalıtım (Inheritance) 5. Çok Biçimlilik (Polymorphism) 24

Sınıflar 25

Sınıf Kavramı Dünyayı anlayabilme kabiliyetimizin çoğu nesneleri ve olayları sınıflar halinde kategorilendirebilmemizden gelmektedir. Örneğin; Çocukken hayvan kavramını, hayvan kelimesini öğrenmeden çok öncesinde biliyordunuz. Hayvanlarla ilk karşılaşmanız köpeğinizle veya sokak kedisi ile veya bir çiftlikteki keçi ile olmuş olabilir. Konuşmayı öğrendikçe, tüm hayvanlar için aynı terimleri kullanıyorduk. 26

Sınıf Kavramı (devam ) Tecrübelendikçe, hayvanlar arasındaki farkları anlayabildik. Mesela bir köpek ile koyunun arasındaki farkı, sonrasında ise yavruları ile yetişkinleri arasındaki fark gibi... Tasitlar sınıfını anlamanız, Kara taşıtları ile Deniz veya Hava taşıtları arasındaki benzerlikleri görmenize yardımcı olur Aynı şekilde Kara Tasitlari sınıfını anlamanız Otomobil ile Kamyonet arasındaki benzerlikleri görmemize yardımcı olur. 27

Sınıf Kavramı (devam ) Taşıt Kara Taşıtı Hava Taşıtı Deniz Taşıtı Otomobil Kamyonet 28

Nesne Kavramı (devam ) Nesne daha genel bir sınıfın somutlaşmış bir örneğidir. Örneğin; Sizin arabanız daha genel bir sınıf olan Araba sınıfının somutlaşmış bir örneğidir. Bir nesne, bulunduğu sınıfın somutlaşmış bir örneğidir. 29

Nesne Kavramı (devam ) Canlı cisimleri de nesne olarak düşünebilirsiniz: Ev bitkiniz, balığınız ve aile bireyleri birer nesnedir. Ayrıca olaylar da nesne dir. Örneğin; Hisse senedi alımlarınız, Bitmek üzere olan bir taksitiniz, Sizin adınıza düzenlenmiş bir parti vb. 30

Sınıf Kavramını Anlamak (devam ) Sınıf kavramı size nesneler hakkında bilgi sağladığı için kullanışlıdır. Nesneler, özelliklerini ve davranışlarını (metotları) sınıflardan alırlar. Örneğin: Bir araba sınıfı ile ilgili hangi özellikleri ve davranışları biliyoruz? Düşünelim 31

Araba Sınıfı Özellikler ve Metotlar Özellikler Marka: string Model: int Renk: string YakitTuru: eyakittur Fiyat: Decimal Motor: motor_sinifi Metotlar / Davranışlar SatinAl() Sat() Calistir(): boolean Sur() Durdur(): boolean 32

Araba Sınıfı UML Gösterimi Marka: string Model: short Renk: string YakitTuru: eyakittur Fiyat: Decimal Motor: motor_sinifi SatinAl() Sat() Calistir(): boolean Sur() Durdur(): boolean Araba Sınıf, Interface Adı Üyeler ve Özellikler Metotlar / Davranışlar 33

Sınıf Kavramını Anlamak (devam ) Nesnelerin üyeleri, sınıf içerisinde kullanılan diğer değişkenler ile karışmaması için field (üye değişkenler) olarak adlandırılır. Nesnelerin özellikleri (property) arka planda üye değişkenleri ile ilişkilendirilirler. Nesneler üzerinden üye değişkenlerine erişilemez (private) ancak özelliklere erişilebilir (public). Genellikle; üyeler küçük harfle, özellikler BÜYÜK harfle başlar. Nesnenin örnek değişkenlerinin içerikleri, o nesnenin durumunu belirler. 34

Araba Sınıfı UML Gösterimi Araba sınıfına ait 2 nesnenin durumu Araba1 Marka: Renault Megane Model: 2009 Renk: Beyaz YakitTuru: edizel Fiyat: 28.500 TL Motor: motor_nesnesi1 SatinAl() Sat() Calistir() Sur() Durdur() Araba2 Marka: Citroen C5 Model: 2012 Renk: Füme YakitTuru: ebenzin Fiyat: 41.500 TL Motor: motor_nesnesi2 SatinAl() Sat() Calistir() Sur() Durdur() 35

Nesnelerin Türetildiği Sınıfları Yaratmak Sınıfları tanımlarken öncelikle bir sınıf başlığı/tanımı yaratılmalıdır. Sınıf başlığı üç parçadan oluşur: 1. İsteğe bağlı bir erişim belirleyici, 2. class anahtar kelimesi, 3. Sınıfın adı [erişim belirleyici] class [sınıfadı] Örneğin; public class Araba Sınıf adları nesnelerin tipini tanımladığı için genellikle tek bir addan oluşur. 36

Nesnelerin Türetildiği Sınıfları Yaratmak (devam ) Araba sınıfını tanımlarken kullanılan public anahtar sözcüğü sınıf erişim belirleyicisidir. Oluşturulan sınıfın amacına uygun olan erişim belirleyicileri kullanılır. Sınıf Erişim Belirleyicisi Public (UML +) Protected (UML #) Internal Varsayılan (UML ~) Private (UML -) Açıklama Sınıfa erişim sınırsızdır Sınıfa erişim bulunduğu sınıf ve bu sınıftan türetilen sınıflar ile sınırlıdır. Sınıfa erişim ait olduğu assembly ile sınırlıdır. Sınıfa erişim ait olduğu sınıf ile sınırlıdır. 37

Nesnelerin Türetildiği Sınıfları Yaratmak (devam ) Sınıf başlıkları tanımlanırken kıvırcık parantezler ( {} ) içerisinde sınıf gövdeleri tanımlanmalıdır. Örneğin; public class Araba { //üye değişkenleri, özellikleri ve metotları buraya yazılır } 38

Örnek1: Araba sınıfı yaratılması Araba +Marka: string +Model: short +Renk: string -fiyatkdvsiz: Decimal 39

Örnek1: Araba sınıfı yaratılması (devam ) Solution Explorer penceresinden projemize yeni bir class eklemek için; Proje adına sağ tıklayıp Add Class a tıklıyoruz. 40

Örnek1: Araba sınıfı yaratılması (devam ) Açılan pencereden yaratılacak sınıfın adını girip Add butonuna tıklıyoruz. 41

Örnek1: Araba sınıfı yaratılması (devam ) Neden sadece fiyatkdvsiz üye değişkeni WARNING veriyor? 42

Örnek1: Araba sınıfı yaratılması (devam ) Sınıfın Kullanımı fiyatkdvsiz üye değişkenine neden erişemedik? 43

Örnek2: DortgenPrizma sınıfı yaratılması -en: float -boy: float -yukseklik: float DortgenPrizma +HacimHesapla(float a, float b, float c): float 44

Örnek2: DortgenPrizma sınıfı yaratılması (devam ) 45

Örnek2: DortgenPrizma sınıfı yaratılması (devam ) Sınıfın Kullanımı 46

Örnek3: KimlikBilgileri sınıfı yaratılması KimlikBilgileri +kimlikno: long +ad: string +soyad: string #dogumyeri: string +dogumtarihi: DateTime +KimlikBilgisiGoster():string 47

Örnek3: KimlikBilgileri sınıfı yaratılması (devam ) 48

Örnek3: KimlikBilgileri sınıfı yaratılması (devam ) Sınıfın Kullanımı Doğum yeri? 49

Örnek4: Ogrenci sınıfı yaratılması Ogrenci +ogrno: string +programturu: eprogramtur (Lisans, YL, Doktora) +birim: string +bolum: string +kimlikbilgi: KimlikBilgileri +OgrenciBilgisiGoster():string Bir sınıf diğer sınıflardan yaratılmış bir nesne üye barındırabilir. Örneğin, ad, soyad, adres vb. gibi üye değişkenlerine sahip KimlikBilgileri sınıfından yaratılan bir nesne Ogrenci sınıfının üyesi olabilir. 50

Örnek4: Ogrenci sınıfı yaratılması (devam )? 51

UML Sınıflar Arası Birliktelik Türleri Aggregation Is-part-of: Bir parçası olmak İçi boş elmas ile gösterilir Composition Is-made-of: Daha güçlü bir parçası olmak Birlikte oluşturulur ve birlikte yok edilir İçi dolu siyah elmas ile gösterili 52

UML Sınıflar Arası Birliktelik Türleri (devam ) Ogrenci Ogrenci 1 1 1 KimlikBilgileri 1 KimlikBilgileri Aggregation Composition 53

Örnek4: Ogrenci sınıfı yaratılması (devam ) Sınıfın Kullanımı 54

Uygulama: Araba Galerisi Bir araba galerisi uygulaması yapmak istiyoruz. Nesne yönelimli mantıkla, soyut düşünelim. Sorular soralım: Soru 1: Hangi sınıflara ihtiyacımız var? Soru 2: Sınıfların birbirleri ile ilişkisi nasıl kurulmalı? Soru 3: Nasıl bir ekran ara yüzü tasarlayalım? 55

Uygulama: Araba Galerisi (devam ) Galeri -Arabalar: List<Araba> +ArabaEkle(Araba a) +ArabaSat(Araba a) +ArabalariListele(): string 1 1..* Araba +Marka: string +Model: short +Renk: string Soru 1: Hangi sınıflara ihtiyacımız var? Soru 2: Sınıfların birbirleri ile ilişkisi nasıl kurulmalı? 56

Uygulama: Araba Galerisi (devam ) Soru 3: Nasıl bir ekran ara yüzü tasarlayalım? 57

Yararlanılan Kaynaklar Sefer Algan, HER YÖNÜYLE C#, Pusula Yayıncılık, İstanbul, 2003 Milli Eğitim Bakanlığı, Nesne Tabanlı Programlama, 2012 Joyce Farrel, An Introduction to Object- Oriented Programming, Cengage Learning, 2011 http://www.algoritmaveprogramlama.com 58

İYİ ÇALIŞMALAR Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr 59