YZM 2105 Nesneye Yönelik Programlama · Nesneye Yönelik Programlamaya Giriş 2 Bu bölümde;...

59
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

Transcript of YZM 2105 Nesneye Yönelik Programlama · Nesneye Yönelik Programlamaya Giriş 2 Bu bölümde;...

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ş

2

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.

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

• 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ş

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

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

4

Nesneye Yönelik Programlamaya Giriş

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ı.

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

• 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

Nesneye Yönelik Programlamaya Giriş

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Önemli özelliklere odaklanabilmek için

ayrıntıları göz ardı etme sürecidir.

6

Soyutlama

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

• 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

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Ö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: Veri Soyutlaması

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

• 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

Soyutlama: Kontrol Soyutlaması

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

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.

10Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı 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

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

12Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Gerçek dünyadaki sistemler sadece fonksiyonlardan oluşmaz.

Sistemin gerçeğe yakın bir modelini bilgisayarda oluşturmak

zordur.

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.

13Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

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.

14Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Yapısal Programlama vs. Nesneye Yönelik

Programlama

• 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

Nesne Kavramı ilk Tanım

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

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ı

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Siparis nesnesi şunları içerir;

Nitelik /özellik olarak;

• Sipariş Tarihi

• Müşteri

• Durumu

Davranış olarak;

• Oluştur

• Öde

• Kalem Ekle / Çıkart

• Sevk Et

17Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Ö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

18Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

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

19Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Ö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

20Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

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

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.

21Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Örnek 2: Trafik Simülasyon

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

22Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Yaya nesnesi

Nitelikler

– Kimlik Numarası

– Anlık Hızı

Davranışlar

– Anlık Hız Değiştirme

Metodu

– Trafik Kuralı Kontrol

Metodu

Örnek 2: Trafik Simülasyon (devam…)

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ı

23Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Örnek 3: Buton Nesnesi

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

Nesneye Yönelik Programlama

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Sınıflar

25Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

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.

26Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

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.

27Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Sınıf Kavramı (devam…)

28

Taşıt

Kara Taşıtı

Otomobil Kamyonet

Hava Taşıtı

Deniz Taşıtı

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

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.

29Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

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.

30Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

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… 31Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Araba Sınıfı Özellikler ve Metotlar

• Özellikler

– Marka: string

– Model: int

– Renk: string

– YakitTuru: eYakitTur

– Fiyat: Decimal

– Motor: motor_sinifi

32Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

• Metotlar / Davranışlar

– SatinAl()

– Sat()

– Calistir(): boolean

– Sur()

– Durdur(): boolean

Araba Sınıfı UML Gösterimi

33Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Araba

Marka: stringModel: shortRenk: stringYakitTuru: eYakitTurFiyat: DecimalMotor: motor_sinifi

SatinAl()Sat()Calistir(): booleanSur()Durdur(): boolean

Sınıf, Interface Adı

Üyeler ve

Özellikler

Metotlar /

Davranışlar

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.34Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Araba Sınıfı UML Gösterimi

35Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Araba1

Marka: Renault MeganeModel: 2009Renk: BeyazYakitTuru: eDizelFiyat: 28.500 TLMotor: motor_nesnesi1

SatinAl()Sat()Calistir()Sur()Durdur()

Araba2

Marka: Citroen C5Model: 2012Renk: FümeYakitTuru: eBenzinFiyat: 41.500 TLMotor: motor_nesnesi2

SatinAl()Sat()Calistir()Sur()Durdur()

• Araba sınıfına ait 2 nesnenin durumu

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.

36Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Nesnelerin Türetildiği Sınıfları Yaratmak (devam…)

• Araba sınıfını tanımlarken kullanılan publicanahtar sözcüğü sınıf erişim belirleyicisidir.

• Oluşturulan sınıfın amacına uygun olan erişim

belirleyicileri kullanılır.

37Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Sınıf Erişim Belirleyicisi Açıklama

Public (UML +) Sınıfa erişim sınırsızdır

Protected (UML #)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.

Internal – Varsayılan (UML ~) Sınıfa erişim ait olduğu assembly ile sınırlıdır.

Private (UML -) Sınıfa erişim ait olduğu sınıf ile sınırlıdır.

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

}

38Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Örnek1: Araba sınıfı yaratılması

39Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Araba

+Marka: string+Model: short+Renk: string-fiyatKDVsiz: Decimal

Ö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.

40Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Ö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.

41Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Örnek1: Araba sınıfı yaratılması (devam…)

Neden sadece fiyatKDVsiz üye değişkeni WARNING veriyor?

42Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Örnek1: Araba sınıfı yaratılması (devam…)

fiyatKDVsiz üye değişkenine neden erişemedik?

43Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Sınıfın Kullanımı

Örnek2: DortgenPrizma sınıfı yaratılması

44Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

DortgenPrizma

-en: float-boy: float-yukseklik: float

+HacimHesapla(float a, float b, float c): float

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

45Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

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

46Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Sınıfın Kullanımı

Örnek3: KimlikBilgileri sınıfı yaratılması

47Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

KimlikBilgileri

+kimlikNo: long+ad: string+soyad: string#dogumYeri: string+dogumTarihi: DateTime

+KimlikBilgisiGoster():string

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

48Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

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

49Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Sınıfın Kullanımı

Doğum yeri ?

Örnek4: Ogrenci sınıfı yaratılması

50Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

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.

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

51Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

?

UML Sınıflar Arası Birliktelik Türleri

• Is-part-of: Bir parçası olmak

• İçi boş elmas ile gösterilirAggregation

• Is-made-of: Daha güçlü bir parçası olmak

• Birlikte oluşturulur ve birlikte yok edilir

• İçi dolu siyah elmas ile gösterili

Composition

52Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

UML Sınıflar Arası Birliktelik Türleri (devam…)

53Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Ogrenci

KimlikBilgileri

1

1

Aggregation

Ogrenci

KimlikBilgileri

1

1

Composition

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

54Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Sınıfın Kullanımı

Uygulama: Araba Galerisi

55Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

• 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?

56Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Galeri

-Arabalar: List<Araba>

+ArabaEkle(Araba a)+ArabaSat(Araba a)+ArabalariListele(): string

Araba+Marka: string+Model: short+Renk: string

1

1..*

Soru 1: Hangi sınıflara ihtiyacımız var?

Soru 2: Sınıfların birbirleri ile ilişkisi nasıl

kurulmalı?

Uygulama: Araba Galerisi (devam…)

57Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Uygulama: Araba Galerisi (devam…)

Soru 3: Nasıl bir ekran ara yüzü tasarlayalım?

Yararlanılan Kaynaklar

58

• 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

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

59

İYİ ÇALIŞMALAR…

Yrd. Doç. Dr. Deniz KILINÇ

[email protected]

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama