Nesne yönelimli programlama (kısaca NYP) yani object oriented programming (kısaca OOP) 1970 yılından bugünlere kadar geliştirilmiş çoğu dilde kullanılan bir metoddur.

OOP genel olarak programlamada iş yükünü hafifletmek için kullanılan ve büyük işlerde olmazsa olmaz bir metodolojidir.

İstatistiklere göre yazılan uygulamanın karmaşıklığı bakım maliyetlerini ve süresini arttırıyordu ve verimli olmuyordu. Bu sorunların büyük kısmı NYP ile aşılmıştır. Ayrıca soyut mantığı bir kenara bırakıp gerçek dünya modellemesi ile uygulama geliştirme (OOP) fikrini ilk olarak Alan Kay 1960 yılında ortaya atmıştır.

NYP'da uygulama belirli parçalara bölünerek anlaşılması daha kolay hale getirilir. Sizden sonra gelecek yazılımcının programın işlevlerini (fonksiyonlarını) anlamasını kolaylaştırır ve karmaşıklığı (doğru şekilde kullanılırsa) engeller.

OOP doğru bir şekilde kullanılırsa aynı zamanda yapısı gereği kod karmaşasının (spagetti kod) önüne geçer. Çoğu geliştiricinin NYP kullanmasında bu olayın da büyük payı vardır.

Yukarıda özeti geçilen bu avatajlar ile yazılan uygulamanın kontrolü, bakımı ve geliştirilmesi OOP metodu ile daha kolay hale gelmiştir. Her açıdan hem geliştiriciye hem de proje finansına artıları vardır. OOP iş yükünü ve iş maliyetini düşürürken uygulamanın kalitesini ve sürdürülebilirliğini arttırır.

Ayrıca NYP'de 4 temel özellik bulunmakta. Bu maddelerden birinin sağlanmadığı durumda OOP'dan bahsedilemez.

  • Soyutlama (Abstraction)
  • Kapsülleme (Encapsulation)
  • Miras Alma (Inheritance)
  • Çok biçimlilik (Polymorphism)

Sizler için GitHub'dan bulduğum açık kaynak OOP kod örneklerini ve diğer yararlanabileceğiniz kaynakları aşağıya bırakıyorum.

- https://github.com/saikos/oop-examples (Java)
- https://github.com/falaybeg/ObjectOr...g-OOP-Examples (C#)
- https://www.programiz.com/python-pro...ed-programming (Python)
- https://beginnersbook.com/2017/08/cpp-oops-concepts/ (C++)