> For the complete documentation index, see [llms.txt](https://samettteraslan.gitbook.io/oop/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://samettteraslan.gitbook.io/oop/master.md).

# OOP(Object Oriented Programing)

![](/files/-MOodGCj9RlcjPa3YS0G)

&#x20;**Nesne tabanlı programlama (OOP)**; yazılım tasarımını işlevler ve mantık yerine, veri veya nesneler etrafında düzenleyen bir programlama dili modelidir. Günümüzde yazılım geliştirme teknolojileri içerisinde büyük bir önem taşır.&#x20;

**Nesne Yönelikli Programlamanın sağladığı kolaylıklar**

* Nesne oluşturma bir sınıf içerisinde toplanır ve tüm projelerde kullanılabilirliğe olanak sağlar.
* Sınıfların 1 kez oluşturulması sayesinde uzun kodları tekrardan yazmak yerine kısa kodlamalar ile çalıştırılabilir.
* Uzun kodların tekrar yazılmasının engellenmesi sayesinde geliştirme süreci kısalır.
* Nesneler birbirinden bağımsız olduğundan bilgi gizliliği konusunda avantaj sağlar.
* Sınıflar sayesinde tüm projelerde değişiklik yapmak yerine tek bir sınıfta değişiklik yapılıp tüm projelerde çalışması sağlanır. Bu zaman kaybını büyük ölçüde azaltır.

**Nesne Yönelimli Programlama Özellikleri**

Nesne Yönelimli Programlamada 4 temel özellik vardır. Bu 4 özellikten birini sağlamayan programlama dili nesne yönelikli programlama dili sayılmaz.

&#x20;Soyutlama (Abstraction,Interface)\
&#x20;Kapsülleme (Encapsulation)\
&#x20;Miras Alma (Kalıtım)\
&#x20;Çok biçimlilik (Polymorphism)
