1 / 24

Sarma (Encapsulation) / Kalitim (Inheritance) /Final Terimleri

Sarma (Encapsulation) / Kalitim (Inheritance) /Final Terimleri. www.ahmetsayar.com. Icerik. Sarma (Encapsulation) “Default” Erişim “Public” Erişim “Private” Erişim “Protected” Erişim Erişim Düzeyleri Sıralaması Kalıtım (Inheritance) Final Terimleri. Sarma (Encapsulation). Neden?

Download Presentation

Sarma (Encapsulation) / Kalitim (Inheritance) /Final Terimleri

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sarma (Encapsulation) / Kalitim (Inheritance) /Final Terimleri www.ahmetsayar.com

  2. Icerik • Sarma (Encapsulation) • “Default” Erişim • “Public” Erişim • “Private” Erişim • “Protected” Erişim • Erişim Düzeyleri Sıralaması • Kalıtım (Inheritance) • Final Terimleri

  3. Sarma (Encapsulation) • Neden? • Bilgi saklama • Kullanıcıyı gereksiz detaylardan uzak tutma • Oluşabilecek hataları önleme • “Kendimizi kendimizden korur!"

  4. Sarma (Encapsulation) • Hersınıfçeşitliüyelerden(özellikler&metodlar)oluşur. • Bazıözelliklervemetodlarınaitolduğusınıf’ındışındaerişiminisınırlamaözelliğine'encapsulation‘(sarma/kapsülleme)denir. • Encapsulationsağlamakiçin“private”,“public”ve“protected”sözcüklerikullanılır. • Bunlaraerişimmodifier(erişimbelirleyici)denir.Hiçbirinikullanmamaktabellibirtercihanlamınagelir.

  5. Friendly (Default) Erişim • Hiçbirerişimbelirleyicikullanılazsa,buüye ’packageprivate‘olur. • Onasadeceaynıpakettekidiğersınıf’larerişebilir,diğerpaketlerdekilererişemez.

  6. Public Erişim • Sistemdekibütünsınıflarınerişebilmesinisağlamakiçin ‘public‘erişimbelirleyicisikullanılır. • Bubelirleyiciözelliklebaşkalarıerişsindiyeyazılanözellikvemetodlariçinkullanılır. • Birnesnedenekadaraz“public”değişkenvarsadışarıyaokadarsadegörünürveokadarkolaykullanılır.

  7. Private Erişim • Birözellikveyametodunsadecetanımlandığısınıftanerişilebilmesini,başkabirdeyişle,osınıfdışındakibütünsınıflardan(aynıpaket’deolsalarbile)erişimininyasaklanmasınısağlamakiçin ‘private‘anahtarkelimesikullanılır. • Birdeğişkenindışarıdangörülebilmesiniancakdeğiştirilememesiniveyadeğiştirmeişlemininsınıfınkontrolündeyapılmasınısağlamakiçinstandartbiryöntemizlenir. • Birözelliğiread-only(saltokunur)yapmakiçin,oözellik“private”yapılır. • Onaerişmekiçinbirtanepublicmetodyazılır.Buşekildedışarındanözelliklerinindeğerleridolaylıolaraköğrenilmişolur.

  8. Protected Erişim • Bazıdurumlardabirözellikveyametodundışarıyakapalıolmasınıancakosınıftantüreyenlereaçıkolmasıistenebilir. • Budurumda'protected‘erişimbelirleyicisikullanılır. • Buanahtarsözcük,bellibirözellikveyametodunsadeceondantüretilensınıflarıilgilendirmesidurumundakullanılır.

  9. Protected Erişim • Birsınıftürediğisınıfınbütünpublicözelliklerineerişebilirhalegelir. • Zatenbunlarahersınıftanerişilebilmektedir. • Hiçbirprivateözelliktüretilensınıfageçmez.Bunlardiğerbütünsınıflaradakapalıdır. • Ancakprotectedözellikvemetodlardışarıyakapalıolduklarıhalde,türetilensınıfbunlaraerişimhakkınasahiptir. • Erişimbelirleyiciolarak“protected”verilmişözellikveyametodlaraosınıflaaynıpaketiçerisindebulunanbütünsınıflartarafındandaerişilebilir.

  10. Erişim Düzeyleri Sıralaması • Sarma / Kapsülleme düzeyleri için public > protected > friendly > private şeklinde bir sıralama yapılır. • Büyük olan düzey küçük olanların haklarını da kapsar • Bir özelliğin “public” olup “private” özelliği içermemesi, yani tanımlandığı sınıftan erişilemez ama onun dışındaki bütün sınıflardan erişilir gibi bir duruma sahip olması söz konusu olamaz.

  11. Kalıtım

  12. Kalıtım Mantığı • Bazı sınıflar, kendi özeliklerini taşıyan özel tiplere ayrılabilir. • Örnek: Bisiklet: dağ bisikleti, yarış bisikleti • Dağ bisikleti ve yarış bisikleti; bisiklet sınıfının alt-sınıflarıdır(“sub-classes”). • Bisiklet sınıfı; dağ bisikleti ve yarış bisikleti sınıflarının üst-sınıfıdır(“super-class”). • Her alt-sınıf kendi üst-sınıfının özelliklerini ve işlevlerini taşır(kalıtım - ”inheritance”). • Dağ bisikleti ve yarış bisikleti, bisiklet sınıfına ait özellikleri taşır: vites, tekerlek, pedal, vb. • Dağ bisikleti ve yarış bisikleti, bisiklet sınıfına ait işlevleri gösterir:hızlanma, fren yapma, vites değiştirme, vb.

  13. Kalıtım Mantığı -2 • Bir alt-sınıf, üst-sınıfından taşıdığı özelliklere ve işlevlere ek olarak; kendine ait özellikleri ve işlevleri içerebilir (tanımlayabilir). • Örnek: Dağ bisikleti, tırmanmayı kolaylaştıran ek viteslere sahip olabilir. • Bir alt-sınıf aynı zamanda, üst-sınıfından taşıdığı işlevleri değiştirebilir (üzerine yazma – “method overriding”). • Örnek: Dağ bisikleti, bisiklet sınıfının “vites değiştir” işlevini, ek vitesleri kullanmayı sağlayacak şekilde değiştirebilir. • Kalıtım sadece tek seviyeli olmak zorunda değildir, birden çok seviyede tanımlanabilir. • Bir alt-sınıf her zaman, üstündeki tüm sınıfların özelliklerini ve işlevlerini taşır. • Kalıtım ağacında (“inheritance tree”) aşağılara doğru inildikçe sınıfın öznelliği artar.

  14. Kalıtım Mantığı -3 • Sınıflar arasındaki kalıtım, uygulamada aşağıdaki avantajları sağlar: • Alt-sınıflar, üst-sınıflarının özelliklerini ve işlevlerini taşıdıklarından; programlama sırasında üst-sınıfların kodu defalarca tekrar kullanılabilir (“reuse”). • Java’da(C++’dadesteklenen)çoklukalıtım(multipleinheritance)desteklenmez. • Birsubclass’ınancakbirtanedirectsuperclass’ıolabilir. • Çoklukalıtımyerineçokluarayüz(multipleinterface)kullanımımevcuttur. • Üzerineyazma/çeşitleme(overriding)sayesindetüreyensınıflardamirasalınanmetodlarihtiyaçlaragöre değiştirilebilir.

  15. Kalıtım Mantığı -4 • Birsınıfındiğerindekiözelliklerimirasolarakalmasıiçinkullanılananahtarsözcük ‘extends‘dir. • Anlamolarak"Busınıfşusınıfıgenişletir”yani “ondakiözellikvemetodlarıalırveyenileriniekler“demektir. • Miras alınan sınıf - Superclass • Miras alan sınıf – Subclass • Herbir subclass, superclass olma adayıdır. • Birsınıftantüreyensınıfınyapılandırıcısıtürediğisınıfınyapılandırıcısını'super()‘şeklindeçağırabilir.

  16. Java’da Kalıtım: Örnek - 1

  17. Java’da Kalıtım: Örnek – 2.1

  18. Java’da Kalıtım: Örnek – 2.2

  19. Üzerine Yazma (“Method Overriding”) • Bir alt sınıfta, üst sınıfa ait bir yöntemi; aynı isim, imza ve dönüş tipi ile tanımlarsak, üst sınıftaki yöntemin üzerine yazmış oluruz. • Alt sınıftan nesne oluşturulduğunda yöntem çağrılırsa, üst sınıfa ait yöntem yerine, alt sınıfta tanımlanmış yöntem koşturulur.

  20. Neden “Üzerine Yazma” ? - 1 • Genel sınıfta, kendinden türetilen tüm sınıflarda ortak olan işlevselliği tanımlamayı sağlar. • Bir üst sınıftan alt sınıflara uzanan hiyerarşiyi tanımlamanın amacı, daha az detaydan daha çok detaya doğru işlevselliği oluşturmaktır. • Bu hiyerarşide üst sınıfın görevi, alt-sınıfların doğrudan kullanabilecekleri (veya üzerine yazabilecekleri) genel özellikleri ve yöntemleri tanımlamaktır.

  21. Neden “Üzerine Yazma” ? - 2 • Üst sınıf aynı zamanda, alt sınıfları için tutarlı bir arayüz oluşturur (ortak tip) • Bu sınıfları kullanan programlar, alt sınıflardan oluşturulan nesnelerin yöntemlerini, üst sınıfın yöntemlerini kullanır gibi kullanabilirler. Hangi seviyedeki sınıfın yönteminin kullanılacağına koşturma zamanında karar verilebilir (“polymorphism”). • Bu özellik, “if” veya “switch” kullanımına gerek bırakmaz. Yeni bir çalışan alt sınıfı eklendiğinde mevcut kodun değiştirilmesi gerekmez

  22. Sınıflar Arasında Kalıtım İlişkisi • Genel sınıf ile onun özel durumlarına karşılık gelen arasındaki ilişki • Ebeveyn-çocuk ilişkisi (“inheritance”) • ( UML) Okun yönü genel sınıfı gösterir • Özel sınıflar genel sınıftan kalıtsal olarak özellikleri ve operasyonları alırlar. • Özel sınıflar yeni özellikler ve operasyonlar tanımlayabilir veya kalıtsal yoldan aldıkları operasyonları yeniden tanımlayabilirler (“overriding”).

  23. Kalıtım ÖrnekYapılandırıcılar EKRAN ÇIKTISI Hayvan SINIFI YAPICISI DortAyakli SINIFI YAPICISI Otcul SINIFI YAPICISI

  24. Kalıtım Örnek – super() • Ucgensınıfındanbirnesne3parametrealanyapıcımetoduileoluşturulduğundailk2parametreanasınıftakiyapılandırıcıyaaktarılmış,böyleceSekilsınıfındantüretilennesnelerinortaközelliğiolanTabanveYuksekliğitüreyensınıfıniçindetekrarbildirmezorunluluğuortadanaldırılmıştır.

More Related