OOP Nedir?

OOP ; Object Oriented Programming'in kısaltmasıdır. Dilimizdeki karşılığı Nesne Yönemli Programlamadır. OOP bir programlama yaklaşımıdır. OOP ile kodlamanın temel sebeplerinden birisi kod karmaşasını azaltmaktır. Büyük çaplı projelerde yeni bir özellik geldiğinde ya da projede değişiklik yapılmak istendiğinde, eğer OOP prensiplerine uygun yazılım geliştirilmişse, işimizi çok kolaylaştıracaktır.

OOP 4 temel prensipten oluşmaktadır. Bunlar ; Soyutlama(Abstraction), Kalıtım(Inheritance), Çok Biçimlilik(Polymorphism) ve Kapsülleme(Encapsulation)' dır.

Bu prensipleri kısaca açıklamak gerekirse; 

Abstraction : Projenin geliştirilme aşamasında, gereksiz ayrıntıların göz ardı edilmesi olarak açıklanabilir.


Kalıtım : Kalıtım yapılması kod  tekrarını engeller. Örnek vermek gerekirse, bir okul yönetim sistemi geliştirdiğimizi varsayalım. Okulda çalışan temizlik görevlisi, öğretmen, müdür, güvenlik görevlisi vb. ve okuyan öğrencilerin bilgilerin tutulacağını varsayalım. Tüm kişilerde ki ortak noktalar; Ad, Soyad, Doğum Tarihi, TC Kimlik Numarası vb'dir. Eğer kalıtım yapmazsak bu özelliklerin(property) herbirini tek tek yazmak zorunda kalırız. Fakat kalıtım yaptığımızda, özellikleri bir class'ta toplayıp, diğer classlara kalıtırsak, tekrarı engellemiş oluruz. Eğer ortak özellikleri Kisi isminde bir class'a toplayıp, diğer üyeleri kalıtırsak işimizi kolaylaştırmış oluruz.
Örnek; 
public class Kisi{
          public string Ad;
          public string Soyad;
         public DateTime DogumTarihi; 
         public long TCKimlikNumarasi;
}


public class Ogretmen : Kisi {}
public class Ogrenci : Kisi {}
public class Müdür : Kisi {}

Oluşturdumuz Ogretmen, Ogrenci ve Müdür sınıflarını Kisi sınıfıdan kalıttık. Bu 3 sınıfımızda Kisi sınıfındaki özelliklere sahip.

Çok Biçimlilik : Aynı isimdeki metodun farklı sınıflarda farklı işlemler gerçekleştirmesidir. Mesela bir Hayvan sınıfı yarattığımızı varsayalım. Hayvan sınıfında SesCikar() isimli bir metodumuz olduğunu varsayalım. Kedi ve Kopek isimli sınıflarımızı Hayvan sınıfından kalıttık. Bu noktada SesCikar() metodu Kedi sınıfında "Miyavlama" işlemi gerçekleştirirken, Kopek sınıfında "Havlama" işlemi gerçekleştirecektir. SesCikar() metodunun farklı işlemler yapmasına "Çok Biçimlilik" diyoruz.

Örnek;
public abstract class Hayvan{
          public abstract void SesCikar();
}
public class Kedi : Hayvan{
          public override void SesCikar(){
                 MessageBox.Show("Miyav");
          }
}

public class Kopek : Hayvan{
          public override void SesCikar(){
                 MessageBox.Show("Hav");
          }

}

Yorumlar

  1. Tebrikler. Çok başarılı bir iş çıkarmışsınız. Yalnız abstract kelimesini anlayamadım. Bi de encapsulation eksik. Onu açıklamamışsınız.. Teşekkürler :)

    YanıtlaSil
  2. Merhaba Muharrem Bey,

    İyi niyetiniz için teşekkürler. Encapsulation'ı atlamışım. İçeriği düzelteceğim.

    Abstract bir keyword. İleriki zamanlarda blogda yayınlayacağım.

    Takipte kalın :)

    YanıtlaSil

Yorum Gönder

Bu blogdaki popüler yayınlar

Şelale(Waterfall) Modeli Nedir?

Scrum Nedir?