> 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)

![](https://4099491849-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MOod-uO8dOWHC7KSrHS%2F-MOod49E9QveLp_HM1kl%2F-MOodGCj9RlcjPa3YS0G%2F1_711wvC7H93NsNjLheFb6Dg.jpeg?alt=media\&token=933f4a33-1f82-42d4-99aa-e69187060c5e)

&#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)
