DEV Community

Hakan Yalitekin
Hakan Yalitekin

Posted on • Originally published at hakanyalitekin.wordpress.com on

Nesne Yönelimli Programlama (Object-Oriented)

Nesneye Yönelik Programlama yazılımdaki karmaşıklığa son vermek amacıyla ortaya çıkmış bir yaklaşımdır. Basitçe tanımlamak gerekirse OOP bir programlama tekniğidir. . Nesneye Dayalı Programlama da asıl amaç, gerçek hayatta var olan olguları programlamaya aktarma yaklaşımıdır.

Bir araba galerisi hayal edin… Nesne yönelimli programlamada bu galeri sınıftır. İçinde ki her bir araba ise nesnedir.

Zamanında nesne yönelimli programlamayı anlamaya çalışırken çok güzel bir ekşisözlük içeriğine rastlamıştım;



“- ya ben buna benzer bisi yazmistim ona bakip yaziyim dan

– ya ben buna benzer bisi yazmistim niye bi daha yaziyim ki, onu kullaniyim a evrilmesi sonucunda ortaya cikan yaklasim ” 01.08.2005 16:10 nekio

*Nesneye Dayalı Programlama 4 temel prensipten oluşmaktadır. *

  • Inheritance (Kalıtım/Miras alma)
  • Encapsulation (Kapsülleme/Sarmallama)
  • Abstraction (Soyutlama)
  • Polymorphism (Çok biçimcilik)
Nesneye Dayalı Programlama Neden Kullanılır?
  • Yazılan kodun tekrar kullanılabilmesi sağlanır*(code-reusability)* . Bu durum yazım maliyetini azaltır
  • Yazdığımız bir sınıfa yeni özellikler ve metodlar ekleyerek genişletebilirlik(Extensibility) sağlanabilir.
  • Yazılan kodun takım çalışmasına uygun hale gelmesi sağlanır.
  • Oluşan bir hata durumunda program parçalara ayrıldığından, hata daha kolay bulunur.
  • Karmaşık kod yazımının önüne geçer ve kodun bakımını kolaylaştırır.
OOP’ye girmeden önce Sınıf-Nesne kavramlarını yakından inceleyelim.

Nesne nedir? Etrafınızda gördüğünüz her şey aslında birer nesnedir. (araba, masa,telefon vs.). Nesneler somut kavramlardır. Nesnelerin başlıca iki özelliği vardır. Durum ve davranış özellikleri.

Durum: Araba nesnesinin rengi, motor gücü, fiyatı vs. gibi özellikleri onun durumunu yansıtır. (attribute/özellik.)

Davranış: Bu arabanın hızlanması, yavaşlaması, vites değiştirmesi gibi fonksiyonları davranıştır. (metot)

Programlamada, durumu ve davranışı olan her şey bir nesnedir.

Araba örneğimizin durumlarında ki özellikler, değişkenler sayesinde hafızada saklanır. Yani nesnelerimizin durumlarını değişkenlerimiz de saklarız ve bu nesnelerin neler yapacağını da metotlarımızda tanımlarız.

Şunu da unutmamakta fayda var. Nesne-Sınıf ilişkisinin mantığını tam olarak kavrayamadan Nesne Yönelimli Programlama Nedir? sorusunun yanıtını hiçbir zaman tam anlamıyla veremeyiz.

Nesneden bahsettik. Peki ya Sınıf nedir? Az önce çokça konuştuğumuz nesnelerden oluşan yapılara sınıf denir. Nesnelerimizin durum ve davranışlarını sınıflar tutar. Yukarıda bahsettiğimiz araba örneğine tekrar dönecek olursak, arabanın özelliklerini(renk,fiyat vs), ve fonksiyonlarını (hızlan,yavaşla, vites değiştir vs) beraber tutulduğu yer sınıftır.

Bu araba sınıfından istediğimiz kadar araba üretebiliriz. Bu ürettiğimiz yeni nesneleri biz programlamada instance (örnek) olarak adlandırırız. Yine bu araba sınıfından oluşturduğumuz her araba nesnesinin, ** değerleri (rengi,modeli gibi) farklı olsa da, yukarıda yazdığımız **durum ve davranışlara sahiptir.

Karıştırılmaması gereken önemli bir nokta ise, aynı sınıftan üretilen nesneler aynı ortak özelliklere sahip olsalar da, bu özelliklerin değeri farklıdır. ** Örneğin aynı sınıftan üretilen fakat **renk , marka , model ve yakıt tipleri farklı olan araba nesneleri verilmiş. Bu nesnelerin ortak özellikleri aynı olsa da, özellik değerlerinin farklı olduğunu görüyoruz. İşte nesneye dayalı programlama mantığı da, burada başlıyor aslında.

Nesne ve sınıf ayrımını kavradıysak eğer, nesne yönelimli programlamanın temellerini oluşturan 4 temel prensibi incelemeye başlayabiliriz demektir.

Discussion (0)