YZM 2105 Nesneye Yönelik Programlama · Nesneye Yönelik Programlamaya Giriş 2 Bu bölümde;...
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ı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Ç
Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama