BM102
Algoritma ve Programlama II
Sınıf (Class)
İçerik
1. Sınıf Tanımı
2. Nesne Tanımı
3. İkili Kapsam Çözme Operatörü
4. UML ile SınıflarınGösterimi
Çözümlü Sorular
2
Hedefler
• Verilen tanımlamalardan sınıf ve nesneleri ayırtetme
• Veri üyesi ve üye fonksiyonlarla sınıf tanımı yapma
• p u b l i c ve p r i v a t e erişim etiketlerinin kullanım farklarını anlatma
• Bir sınıZan nesne yaratma
• Nesnenin özelliklerine ve davranışlarınaerişme
• İkili kapsam çözme operatörü ile üye fonksiyonları sınıfı
tanımlama
• Sınıfa ait veri üyeleri için erişimci ve değiştirici fonksiyonları yazma
• Bir sınıf tanımını kullanarak UML sınıf diyagramını çizme
• Verilen UML sınıf diyagramını dikkate alarak sınıf tanımını yazma
3
Sınıf
• Sınıf kavramı, nesne tabanlı programlamanın temelini
oluşturur.
• Nesne tabanlı programlamanın ilk özelliği olan sarmalama
(encapsulation), veri ve bu veriyle ilgili işlemlerin tek bir
birimde toplanması gerektiğinibelirtir.
• Gerçek hayatta etrafımıza baktığımızda canlı cansız
birçok nesneyle karşılaşırız.
4
Sınıf...
• Bu nesnelerin her birinin durumu ve davranış özellikleri
vardır. Bu örneklerde de görüldüğü gibi bir nesne, durum ve
davranış özelliklerini içinde barındırır.
5
Sınıf...
• Nesne tabanlı programlama mantığını kullanırsak, Lola nesnesi, tüm
köpek nesnelerini oluşturan sınıfınbir örneğidir.
• Sınıf ise tüm köpek nesnelerini oluşturmak için kullanılan bir
modeldir.
• Buradan yola çıkarak sınıf (class), bir nesneyi (object / instance)
oluşturmak için gereken model veya plan olarak tanımlayabiliriz.
6
Sınıf...
7
1. Sınıf Tanımı
• Sınıf, çözülmesi gereken problemin içeriğine göre yeni bir veri
tipi ve bu veri tipi ile yapılacak işlemleri tanımlamamıza
olanak sağlar.
• Oluşturulan her nesnenin durum özellikleri veri üyesi (data
member), davranış özellikleri ise üye fonksiyonlarla (member
function) tanımlanır.
8
1. Sınıf Tanımı...
• Sınıf tanımında yer alan üyelere erişimi, farklı erişim etiketleri
kullanarak sınırlandırabiliriz:
– public (genel): bu etiket albnda tanımlanan üyelere programın her
yerinden erişilebilir.
– private (özel): bu etiket albnda tanımlanan üyelere sadece sınıf
içerisinden erişilebilir.
• Sınıf tipinde tanımlanan değişkenlere nesne (object)adı
verilir.
• Sınıf tanımı sırasında p u b l i c veya p r i v a t e erişim
etiketi belirtilmezse, tanımlanan sınıf üyelerinin erişim
etiketleri p r i v a t e olarak varsayılır.
9
1. Sınıf Tanımı...
10
1. Sınıf Tanımı...
• Aynı yapılarda olduğu gibi bir nesnenin veri veya
fonksiyon üyelerine erişmek için aşağıdaki
sözdiziminde görüldüğü gibi nokta (.) operatörünü
kullanmamız gerekir.
nesneAdı.üyeİsmi
Örnek:
x . i = 5;
[Link]( ) ;
11
1. Sınıf Tanımı...
12
1. Sınıf Tanımı...
• Aşağıda görüldüğü üzere public olarak etiketlenmiş üyesinemain()
fonksiyonundan erişebilirken, private olarak etiketlenmiş y ve
z üyelerine erişmemiz mümkün olmamıştır..
13
2. Nesne Tanımı
14
2. Nesne Tanımı...
15
3. İkili Kapsam ÇözmeOperatörü(::)
• Sınıfın dışında tanımlanan fonksiyonun hangi sınıfın üye
fonksiyonu olduğunu belirtmek amacıyla ikili kapsam çözme
operatörü (::) (binary scope resolution operator)kullanılır.
döndürülenVeriTipi SınıfAdı :: fonksiyonAdı (parametre listesi){
…
}
16
3. İkili Kapsam Çözme Operatörü (::)...
17
3. İkili Kapsam Çözme Operatörü (::)...
18
3. İkili Kapsam Çözme Operatörü (::)...
• Bir sınıf üyesinin değerini değiştiren
fonksiyonlara değiştirici fonksiyon (mutator
function) adı verilir.
• Sınıf üyesini değiştirmeyen, sadece bu üyeleri
döndüren fonksiyonlara erişimci fonksiyon
(accessor function) ismi verilir.
19
3. İkili Kapsam Çözme Operatörü(::)...
20
4. UML ile SınıflarınGösterimi
• UML (Unified Modeling Language) (Tümleşik
Modelleme Dili), nesne tabanlı analiz ve tasarım
sürecinde sınıflar ve sınıflar arası ilişkiyi göstermek
amacı ile kullanılan bir modellemearacıdır.
• UML,ihtiyaca yönelik birçok farklı gösterim modelini
içerir.
• Sınıf diyagramları bu gösterim modellerinden biridir.
Sınıf diyagramları ile tasarlanan sınıfın durumu
(veri üyeleri) ve davranışları (fonksiyonlar) görsel
olarak tanımlanır.
21
4. UML ile SınıflarınGösterimi...
Bu diyagramda kullanılan ‘ + ’
işareti, söz konusu üyenin
public olduğunu, ‘ - ’ işareti ise
üyenin private olduğunu
göstermektedir.
Örnek
22
4. UML ile SınıflarınGösterimi...
23
Çözümlü Sorular
Soru
24
Çözümlü Sorular
Cevap
25
Çözümlü Sorular
Soru
26
Çözümlü Sorular
Cevap
27
Çözümlü Sorular
Cevap
28
Çözümlü Sorular
Soru