Nesneye yönelik programlama bilgisayar programlama yöntemidir ve işlerin kolaylaşıp harcanan sürenin kısalması için doğmuştur.
OOP mantığı doğmadan önce (prosedürel programlama dilleri vs.) programlar büyüdükçe ve karmaşıklaştıkça harcanan süreler ve emekler artıyor ve bu hem üretimi kısıtlıyor hem de maaliyeti arttırıyordu. Ayrıca kodun başkaları tarafından okunması ve düzenlenmesi çok zorlaşıyordu. Daha sonraları 1960'lı yıllarda Ole-Johan Dahl ve Kristen Nygaard ortaya OOP mantığıyla Oslo'daki Norveç Bilgi İşlem Merkezi'nde geliştirdikleri Simula I ve Simula 67 dillerini çıkardılar.
Bir dilin OOP olabilmesi için belli bazı özellikleri olması gerekir. Bunlar;
Encapsulation(Kapsülleme):
Bazı nesnelerin ve metodların diğerlerinden saklanabilmesi, erişiminin sınırlandırılabilmesidir. Bir hocamın dediği üzere encapsulation'ı bir kapaklı bir kumandaya benzetebiliriz. Kumandanın normal ayar tuşları ortada (public) iken ileri seviye ayar tuşları kapağın altındadır(private). Böylece nesnelerin ve metodların ilgili kişiler tarafından kullanımı sağlanarak bilinçsiz kullanım önlenmiş olur.
Inheritance(Kalıtım): Bir sınıfın başka bir sınıftaki özellik ve metodlara sahip olmasına inheritance denir. Belli bir sınıf, daha genel bir kavramı ifade eden sınıfın üyelerine sahip olarak, onları tekrar tanımlamak zorunda kalmaz. Bir sınıfın üst sınıfın özelliklerini miras olarak alması için kullanılan anahtar kelime 'extends' dir.
Bazı nesnelerin ve metodların diğerlerinden saklanabilmesi, erişiminin sınırlandırılabilmesidir. Bir hocamın dediği üzere encapsulation'ı bir kapaklı bir kumandaya benzetebiliriz. Kumandanın normal ayar tuşları ortada (public) iken ileri seviye ayar tuşları kapağın altındadır(private). Böylece nesnelerin ve metodların ilgili kişiler tarafından kullanımı sağlanarak bilinçsiz kullanım önlenmiş olur.
Inheritance(Kalıtım): Bir sınıfın başka bir sınıftaki özellik ve metodlara sahip olmasına inheritance denir. Belli bir sınıf, daha genel bir kavramı ifade eden sınıfın üyelerine sahip olarak, onları tekrar tanımlamak zorunda kalmaz. Bir sınıfın üst sınıfın özelliklerini miras olarak alması için kullanılan anahtar kelime 'extends' dir.
Polymorphism(Çok Biçimlilik): Bir metodun birçok nesne tarafından kullanılabilmesidir. Bunun için overload özelliğinden faydalanılır.
0 yorum:
Yorum Gönder