Nesneye Yönelik Programlama (Object Oriented Programming)

Nesneye yönelik programlama merkezinde nesne veya nesneleri barındıran programlama modelidir. Bu programlama modelinin hikayesi şu ki; ortada bir sorun var ve varsayalım ki bu sorunu oluşturan küçük soruncuklar mevcut. Bu soruncukları çözüme kavuşturmak için bir akış şeması ya da daha detaylı ve gelişmişini düşünecek olursak şemasal bir diyagram oluşturmamız gereklidir. İşte OOP’de tam burada işin içerisine dahil oluyor. OOP, sorunları sınıflara bölüp o sınıflardan oluşturduğumuz nesneler, o nesnelere vermiş olduğumuz özellikler ve nesneler arasında kurduğumuz ilişkiler sayesinde çözüme kavuşturuyor.

OOP’yi OOP yapan 4 temel özellik bulunmaktadır. Bunlar; kalıtım(inheritance), çok biçimlilik(polymorphism), Kapsülleme(encapsulation), soyutlama(abstraction). Şimdi bunları daha ayrıntılı şekilde anlayalım.

1-Kalıtım

Bir sınıftan başka bir sınıf türetmeyi sağlayan özelliktir. Türetme işlemi olduğu için ortada, türeten üst sınıf, türeyen ise alt sınıf olmuş oluyor. Kalıtım sayesinde ortak özelliği olan sınıflarda aynı özelliği her sınıf için ayrı ayrı tekrardan yazmamış oluyoruz. Örnek vermek gerekirse bir insan sınıfı olsun ve kız, erkek sınıflarımız olsun. Aslında kız ve erkek sınıfımızda insan sınıfının taşıdığı birçok özelliği taşımakta mesela nefes almak gibi, yürümek, konuşmak gibi. İşte bu yüzden burada kız-erkek sınıflarını insan sınıfından türetiriz bu şekilde insan sınıfı hangi özellikleri kapsıyorsa ondan türeyen sınıflarda aynı özellikleri kapsar.

2-Çok Biçimlilik

Bir nesnenin davranış şekillerinin duruma göre değişebilmesidir. Örneğin telefonlarımızın kapatma tuşları telefon açıkken kapatma görevi görür ancak telefon kapalıyken açma görevi görür. Yani sonuç olarak bir nesneye birden fazla davranış şekli vermeyi sağlıyor.

3-Kapsülleme

Aslında isminden de yola çıkacak olursak kapsülleme, bir şeyi koruma altına alma, kapama gibi anlamlara gelmektedir. OOP’de de aynen bu amaçla kullanılmakta kapsülleme. Yani bir sınıfın bazı özelliklerine erişilmesini istemiyorsak o özellikleri nesneye yönelik programlama tekniği ile gizleriz. (Bu tekniklerden daha sonra daha ayrıntılı bahsedeceğim.)

4-Soyutlama

Ortak özellikleri olan nesneleri modellemek için soyutlamayı kullanırız. Yani zemin kısmı oluşturmak için daha çok kullanıyoruz. Elimizde birden fazla bina olduğunu düşünelim. Bu binaların camı olması, balkonu olması o binaların karakteristik özelliğidir. Ancak cam tekli olabilir ya da çiftli olabilir. Balkonlarının büyüklükleri farklı olabilir. İşte burada soyutlama yaparak her camın her binada farklı rolle görev almasını sağlayabiliriz.

Sonuç olarak OOP bize ne katıyor diye düşünecek olursak; yazdığımız kodun okunabilirliğini, anlaşılabilirliğini, geliştirilebilirliğini arttırıyor. Bu şekilde daha güzel, tekrar dönüp baktığımızda arkasından saydırmayacağımız kodlar yazmış oluyoruz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir