Nesne Yönelimli Programlama (OOP) Nedir?
Değerli arkadaşlar, merhaba! Bu yazımızda sizlere, programlama konusunda çok ama çok önemli ve kesinlikle benimsenmesi gereken bir yapı olan Nesne Yönelimli Programlama’nın ne olduğundan bahsedeceğiz.
Nesne Yönelimli Programlama (Object Oriented Programming – OOP), gerçek hayatta gördüğümüz birçok nesnenin bilgisayar ortamına aktarılma şeklidir. Bir nesnenin rengi, durumu, ismi gibi birçok özelliğin bilgisayar ortamında gösterilmesi, buna örnek olarak verilebilir. Net bir tanıma ihtiyaç duyarsak şu tanımı yapabiliriz: “OOP, her işlevin nesnel olarak soyutlandığı bir programlama şeklidir.” OOP yapısını destekleyen programlama dilleri, 'yüksek seviyeli diller' olarak adlandırılır.
OOP’un Faydaları Nelerdir?
- Nesne oluşturma işlemi bir sınıf (class) içerisine toplanır ve tüm projelerde kullanılabilir olmasını sağlar.
- Sınıfların bir kez oluşturulması yeterlidir. Bu sayede sorunlarla başa çıkarken karmaşık kodlar arasında boğulmak yerine oluşturulan sınıfa göz atılır. Ayrıca tanımlama işlemleri bittikten sonra kodları başka bir yerde tekrardan yazmak yerine sınıfa erişilerek kısa kodlarla daha düzenli ve az yer kaplayan bir çalışma, daha kısa zamanda sağlanabilir.
- Nesneler birbirlerinden bağımsız olduğu için bilgi gizliliğini sağlar.
Sınıf ve Nesne Nedir?
Gerçek dünyadaki nesnelerin özellik ve davranışları, ‘metotlar’ sayesinde sınıflara aktarılır. Metot, kullanıcı kaydı veya iki sayının toplamı gibi bir görevi yerine getiren alt programlara denir. ‘Değişkenler’ ise adından da anlaşılacağı gibi kullanılacak olan bilgileri (ad, soyad ve yaş vb.) saklar. Sınıf içerisine tanımlanan metot ve değişkenler, ‘sınıfın üyeleri’ olarak adlandırılır.
Nesne ise içinde veri saklayan ve bu veriler üzerinde işlem yapacak olan metotlar barındıran bileşenlerdir.
OOP’un 4 Temel Özelliği
1. Soyutlama (Abstraction)
- Yukarıda da bahsettiğimiz gibi soyutlama, bir sınıfta davranış ve özelliklerin tanımlanmasıdır.
2. Kapsülleme (Encapsulation)
- Yukarıda ‘bilgi gizliliği’ olarak adlandırdığımız konu ‘Kapsülleme’ sayesinde yapılmaktadır. Kapsülleme, sınıfı oluşturan metot ve özelliklerin gerçekleştirilme biçiminin, bu sınıfı kullanacak olan kullanıcılardan gizlenmiş olması demektir.
- Başka bir deyişle; özellikler (veri) ve metotlar (veri üzerinde işlem yapan kod) bir arada bulunur ve nesneyi oluşturur. Nesneyi tanımlayan sınıfın iç ayrıntıları normal olarak programın artakalan kısmı için görünür değildir (Örneğin X nesnesi, Y nesnesinin özelliklerini kullanamaz ve onlara erişemez).
- Kapsülleme yaparken hangi özellik ve davranışın dışarı sunulup sunulmayacağını belirleriz.
- Private: Sadece kendi sınıfında kullanılabilen özellik ve davranışlardır; gizlidir. Örneğin ‘İnsan’ sınıfında spor yapma alışkanlığı bizi ilgilendirmiyorsa veya bu bilgiyi başkalarının görmemesi gerekiyorsa bunu, gizli (private) duruma getiririz.
- Public: Herkesin kullanabileceği özellik ve davranışlardır. Örneğin isim ve soyisim bilisinin gözükmesi gerekiyorsa bu özellikler, halka açık (public) olarak tutulabilir.
- Protected: Sınıf içerisinde miras alınan alt sınıflar tarafından kullanılır. Korumalı yöntemler (protected), public ve private yöntemler arasında bir dengedir. Genel kapsamda erişilemezlerdir. Yani ne istemci ne de program, onları çağıramaz. Ancak aynı sınıftaki nesneler birbirlerinin korumalı yöntemlerine erişebilir.
- Protected yöntem oluşturmak için en iyi zaman, aynı sınıftaki nesneler arasında verileri karşılaştırmak ve/veya aktarmak istediğiniz, ancak bu bilgilerin herkese açık olmasını istemediğiniz zamandır.
3. Miras/Kalıtım (Inheritance)
- Sınıflar birbirlerinden türeyebilir. Bir Alt Sınıf, Üst Sınıfın özelliklerini alabilir. Örneğin araba, otobüs ve bisiklet daha geniş bir kategoride ele alınır (superclass – üst sınıf) fakat bunların ortak özelliği olan ‘ulaşım’, miras kategorisinde yer alır. Burada yapılması gereken şey, ortak özellikleri başka yerde tekrardan yazmak yerine bu özellikleri içeren bir sınıf daha oluşturup (subclass – alt sınıf) miras almak olmalıdır. Kısacası; alt sınıflar, özellikleri üst sınıflardan devralır ve iş yükünü azaltır.
4. Çok Biçimcilik (Polymorphism)
- Alt sınıflar, üst sınıfın gösterdiği davranışları göstermese de olur. Alt sınıfların farklı davranmasına ‘Çok biçimcilik’ denir. Bir nesnenin diğer bir nesneyle ortak özellikleri olmasına rağmen farklı özelliklerinin de tanımlanabilmesine denir.
[!] Bir programlama dili, yukarıdaki özelliklerden birini bile sağlayamıyorsa o dil, Nesne Yönelimli Programlama Dili olarak adlandırılamaz; hepsini karşılamak zorunadır.
Yayınlanma Tarihi: 2022-07-06 22:30:10
Son Düzenleme Tarihi: 2022-07-06 23:15:43