1. Ana Sayfa
  2. Programlama
  3. Nesne Yönelimli Programlama (OOP) Nedir ?

Nesne Yönelimli Programlama (OOP) Nedir ?

uEJ6dA6vbt
2

Nesne Yönelimli Programlama (OOP) Nedir ? Bu yazımda giriş olarak nesneye yönelimli programlama (Object Oriented Programming) mantığını, nerelerde kullanıldığını günlük yaşamdan örneklerle açıklamaya çalışacağım.

Program

Günlük hayatta bir sorunu bilgisayar ile çözmek, rutin işleri kolaylaştırmak için yazılan yazılımlardır. Başka bir deyişle bilgisayarın bir işlevi yapması için tasarlanmış komut zinciridir.

Programlama Dili

Programlama dili, bilgisayar ortamında çözülecek bir sorun için, çözümün bilgisayara adım adım yazılmasını sağlayan, biçimsel
olan tanımlar kümesidir.

Nesne Yönelimli Programlama

OOP’ ye örnek verecek olursak gerçek hayatta gördüğümüz araba, radyo, bina vb. gibi nesnelerin bilgisayar ortamına aktarılmasına denir.
Örneğin; lambanın açık-kapalı olması durumu, veya radyonun rengi, markası, üretim yılı… gibi özelliklerinin bilgisayar ortamında gösterilmesidir.

Nesne Yönelimli Programlamanın Sağladığı Kolaylıklar

  1. Gerçek dünyadaki nesnelerin tasarımları sınıf içinde yapılır.
  2. Sınıftan nesne üretilip değişiklik yapılmak istendiğinde tüm programda değişiklik yapmak gerekmez sadece oluşturulan nesnenın sınıf içinde değişiklik yapmak yeterlidir.
  3. Sınıflar oluşturularak daha az kod oluşturup daha fazla iş yapıp kod tekrarı önlenir.
  4. Kod tekrarı önlediği için geliştirme sürecinin verimliliğini artırır.
nesne yönelimli programlama
Nesne Yönelimli Programlama (OOP)

Nesneye Dayalı Programlamada Sınıf Nedir?

Gerçek dünyadaki nesnelerin özellikleri ve davranışları sınıflara aktarılır. Bu durumların sınıflara aktarılması metotlarla olur. Sınıfta tanımlanan metot ve değişkenlere sınıfın üyeleri denir. Değişkenler isim, soy isim, yaş gibi kullanacağımız bilgileri saklamaktadır. Metotlar ise, kullanıcı kaydı, iki sayısının toplamı gibi bir görevi yerine getiren alt programlardır. Sınıf soyut bir kavramdır doğrudan kullanılamaz nesne oluşturup kullanabiliriz.

sınıf

Nesneye Dayalı Programlamada Nesne Nedir?

Nesne (Object) ise, etrafımızda gördüğümüz ve tabiri eğer uygunsa “şey” olarak tanımladığımız varlıktır. Örnek verirsek; kalem, kağıt, defter, ben, onlar, Ahmet vs. bunların hepsi birer nesnedir diyebiliriz. Nesnelerin iki temel bileşeni bulunur. Bunlar: Özellik (Property) ve Davranış (Behavior)’dır. Tanımlandığı sınıfın özelliklerini taşımaktadır.

nesne

Nesne – Sınıf İlişkisi 

Doğadaki birçok şeyden sınıf – nesne ilişkisini içeren başka örneklerde bulabilirsiniz. Yani aslında doğada ki her şeyin bir nesne ve bu her bir nesnenin de kendine ait bir sınıfı olduğunu söyleyebiliriz. Yani aslında sınıf, soyut bir veri tipidir. Nesne(object) ise onun somutlaşan bir varlığıdır. Sınıflarda, nesnelerde olması gereken özellikleryani durum ve davranışlar bulundurulur. Bu sınıftan bir instance (örnek) oluşturduğumuzda ise buna nesne denir. Dolayısıyla bir sınıftan istediğimiz kadar nesne üretebiliriz.

Nesne Yönelimli Programlamanın Özellikleri

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

Soyutlama: Bir sınıfta davranış ve özelliklerin tanımlanmasına soyutlama diyoruz.
Örneğin; araba sınıfında rengi, modeli, tekerlek sayısı, motor gücü, özellikleridir. Hızlanması, fren yapması, durması davranışlarıdır ve metotlar ile tanımlanır.

Kapsülleme: Davranış ve özellikler sınıfta soyutlanarak kapsüllenir. Kapsülleme ile hangi özellik ve davranışın dışarıya sunulup sunulmayacağını belirleriz.
Örneğin; İnsan sınıfında yemek alışkanlığı bizi iliglendirmiyorsa bunu kapalı (private) yapıp gizleriz. Ancak isim soyisim gibi bilgiler bizi ilgilendirdiği için bunlar açık bırakılır. Bu olaya bilgi saklama yani kapsülleme denilmektedir. Bilgi saklama erişim belirteçleri (public, private, protected) ile gerçekleştirilir.

public : Herkesin kullanabileceği özellik ve davranışlardır
private : Sadece kendi sınıfta kullanılabilen özellikler ve davranışlardır
protected : Sınıf içinde ve miras alınan alt sınıflarda kullanılır.

Kalıtım: Sınıflar birbirinden türeyebilir. Alt sınıf üst sınıfın özelliklerini alabilir.
Örneğin; araba ve bisiklet sınıflarında ortak özellik olarak tekerlek sayısı, hızı… gibi özelliklerini tekrar yazmak yerine bu özellikleri içeren bir sınıf oluşturup miras alabiliriz. Bir sınıftan birden fazla miras alınıyorsa buna çoklu kalıtım denir.

Çok Biçimlilik: Alt sınıflar üst sınıfın gösterdiği davranışları göstermek zorunda değildir. Alt sınıfların farklı davranışları göstermesine “Çok biçimlilik” denilmektedir.
Örneğin; Gemi ve araba sınıflarını ele aldığımızda bunların hareket tipleri bulunmaktadır. Gemi su üzerinden giderken araba karada hareket etmektedir. Kısaca farklı nesnelerin (araba ve gemi gibi) aynı olaya (hareket tipine) farklı şekilde cevap vermesidir.

Python‘da Sınıf Ve Nesne Nasıl Tanımlanır?

Yani aslında sınıf, soyut bir veri tipidir. Nesne (object) ise onun somutlaşan bir varlığıdır. Sınıflarda, nesnelerde olması gereken özellikleryani durum ve davranışlar bulundurulur. Örneğin, aşağıda bir araba sınıfı oluşturduk.

class Araba:
    marka = ""
    renk =  ""
    model = ""

Bu sınıftan bir instance (örnek) oluşturduğumuzda ise buna nesne denir. 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ırAşağıdaki örnekte ise belli özelliklere sahip bir araba nesnesi oluşturmuş olduk.

#sınıftan bir nesne türetiyoruz.
araba1 = Araba()
araba1.marka = "FORD"
araba1.renk  = "siyah"
araba1.plaka = "34 P 148"
print(araba1)

"""
Çıktı
<__main__.Araba object at 0x000002101DF3DE08>
"""

araba1 objesi artık sınıfta tanımladığımız bütün özelliklere (attributes) sahip olmuş oldu. İşte sınıf ve obje üretmek bu şekilde olmaktadır. Peki bu araba objesinin özelliklerinin nasıl görebiliriz?

print(araba1.marka) 
print(araba1.renk)  
print(araba1.plaka)
 
"""
 Çıktı
 "FORD"
 "siyah"
 "34 P 148"
"""

Burada gördüğümüz, oluşturduğumuz araba objesinin; model, renk vs. gibi özelliklerinin değeridir.

Sosyal Medya hesaplarımdan da beni takip edebilirsiniz.

Diğer yazılarımızı okudunuz mu ? 2050 YILINDA OKYANUSA UYANMAYA HAZIR MISINIZ?

Yorum Yap

Yazar Hakkında

çocukluğumdan beri hayalim olan bilgisayar mühendisliği bölümünü karamanoğlu mehmetbey üniversitesinde okuyor bulunmaktayım üniversitemizin ilk öğrencileri olduğumuzdan dolayı bizim alanda olan eksiklikleri bi nevi kapatabilmek adına kurduğum yazılım bilişim topluluğumuzunda başkanlık görevini üstenmekteyim.

Yorum Yap

Yorumlar (3)

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir