Nesne Yönelimli Programlama (Object Orientited Programming - OOP ) dillerinin en büyük avantajlarından birisi de yazdığımız kodu tekrar kullanabilme ( code re-usability) özelliğidir.
Yazdığımız kodu tekrar kullanabilmek için 2 tane yol vardır. Bunlardan 1.si Kalıtım (İnheritance - IS A İlişkisi ) ve 2. si Kompozisyon ( Composition - HAS A ilişkisi ) dir.
IS - A İLİŞKİSİ
Nesne Yönelimli Programlama dillerinde , IS - A ilişkisi tamamiyle kalıtımla ilişkilidir.
Inheritance denilen kavram ise extends anahtar sözcüğü kullanılarak yapılan
Class Kalıtımı ya da implements anahtar sözcüğü ile yapılan Interface Kalıtımıdır.
Is - A ilişkisinde ifade edilen ; BMW bir Araçtır .Kiraz bir meyvadır ... türünde illişkilerdir .
Is - A ilişkisinde ifade edilen ; BMW bir Araçtır .Kiraz bir meyvadır ... türünde illişkilerdir .
Yani Kiraz , kiraz olabilmesinin yanında aynı zamanda da bir meyvadır.
Ancak her meyva aynı zamanda bir kiraz olamayacağı için kalıtım tek yönlü ( uni - directional ) bir olaydır.
BMW - Arac örnegi üzerinden durumu açıklarsak ; BMW adında bir sınıfımız olduğunu düşünelim.
BMW - Arac örnegi üzerinden durumu açıklarsak ; BMW adında bir sınıfımız olduğunu düşünelim.
Ayrıyetten birde Arac adında bir sınıfımız olduğunu düşünelim.
Arac sınıfı , araçlara ait olan ortak özellikleri bulunduran bir sınıftır ve BMW sınıfı bu sınıfı extends anahtar sözcüğü ile kalıtırsa Araç sınıfına ait olan genel özellikleri kalıtmış olmaktadır.
BMW sınıfı extend ettiği sınıf içerisindeki methodları override etmeyebilir.
Eğer bu methodları override etmez ise , yani aynı isimler ile aynı paramatreler alan bir method oluşturmazsa , bu methodu kendine göre özelleştirmeyip , araç 'a ait olan genel özellikleri kullanmış olur .
HAS - A İLİŞKİSİ
Komposizyon ( Has - A ) kullanımı , daha önceden yazılmış ve doğruluğu kanıtlamış olan sınıf/sınıfları , yeni yazdığımız sınıf içerisinde doğrudan kullanma olarak tanımlanır .
HAS - A İLİŞKİSİ
Komposizyon ( Has - A ) kullanımı , daha önceden yazılmış ve doğruluğu kanıtlamış olan sınıf/sınıfları , yeni yazdığımız sınıf içerisinde doğrudan kullanma olarak tanımlanır .
Buradaki has - A ilişkisini benzetecek olursak ; Aracın moturu vardır , Evin masası vardır .. gibi örneklerle gösterilebilir.
Araç örneği üzerinden bu durumu açıklarsak ; Arac adında bir sınıfımız olduğunu düşünelim .
Araç örneği üzerinden bu durumu açıklarsak ; Arac adında bir sınıfımız olduğunu düşünelim .
Ayrı olarak bir de Motor isminde başka bir sınıfımızın bulunduğunu düşünelim .
Yukarıda belirttiğimiz gibi Araçların motorları bulunmakta olduğundan bu Motor sınıfından üreticeğimiz nesneyi , Arac sınıfı içerisinde kullanırsak Komposizyon yapmış olmaktayız .
Hiç yorum yok:
Yorum Gönder