OOP(Nesneye Yönelik Programlama) de/da dört temel prensipten bahsetmek
mümkündür;
1) Abstraction(Soyutlama) : OOP de her somut olan şey “class” olarak soyutlanarak ifade edilmektedir. Her “class” bir “obje yani nesnedir”. Her nesnenin
belirli özellikleri , methodları bulunur. (Örneğin Araba class ının rengi ,
araba classının içine yazılmış arabanın hızını artırma methodu gibi...)
Class lar normal , abstract veya
interface olarak tanımlanabilirler.
Abstract classlar;
- Kod içerisinde "new" komutuyla oluşturulamazlar (bu sınıflardan
nesne türetilemez).
- Bir sınıf yalnızca bir abstract sınıfına extend edebilir.
- Abstract sınıfla ona extend eden sınıflar arasında genellikle "is-a" ilişkisi vardır.
(Mercedes is a car , Mercedes
extends Car dır , Mercedes bir arabanın sahip olduğu bütün metotlara sahiptir,
metotlar Car sınıfında vardır, istenirse Mercedes içinde override
edilebilirler)
- Abstract sınıfta metotlar ve değişkenler tanımlanabilir.
Interface ;
- Kod içerisinde "new" komutuyla oluşturulamazlar (bu sınıflardan nesne türetilemez).
- Bir sınıf birden fazla interface' e implement edilebilir.
- Interface sınıfını implemente eden eden sınıflar ile aralarında "can-do" ilişkisi vardır.
Örneğin Mercedes can parkItself, Mercedes implements Park , Park sınıfı
"parkItself" adında bir metoda sahiptir , tüm Mercedes'ler kendi
kendini park edebilmeli anlamlarına gelmektedir.
- Interface sınıfında sadece boş
metotlar ve public static final değişkenler bulunabilir.
2) Encapsulation(Sarmalama) : Kod ve bu kodun üzerinde çalıştığı veriyi birbirine
bağlayarak dışarıdan gelebilecek müdahale ve kötüye kullanmalara karşı onları
koruyan mekanizmadır.(Koruyucu ambalaj) Arabanın vitesi sarmalanmıştır.
İçerisinde yazılmış methodların yaptıkları işlere müdahale edemeyiz gibi.
3) Inheritance(Kalıtım) : Bir nesnenin başka bir nesnenin özelliklerini
devralmasıdır.Örneğin “Ford” classının “Araba” classının tüm özelliklerini
devralacak şekilde inherit edilmesi gibi.
4) Polymorphism(Çok çeşitlilik) : Farklı nesnelerin aynı methoda farklı cevap
verebilmeleridir. Örneğin “Cokgen” classından türemiş olan
“Ucgen,Dortgen,Besgen” isimli classların “alanHesapla()” isimli methodları
farklı çeşitte sonuç üretirler.
Hiç yorum yok :
Yorum Gönder