Python OOP Nedir?

Python OOP Nedir?

Python'da Nesne Yönelimli Programlama (Object-Oriented Programming - OOP), bir programlama paradigmasıdır. Bu paradigma, yazılımın nesneler (objects) etrafında yapılandırılmasını sağlar. Nesneler, verileri (özellikler, yani attributes) ve bu veriler üzerinde işlem yapabilen fonksiyonları (davranışlar, yani methods) bir araya getirir. OOP, yazılımın daha organize, modüler ve bakımı kolay bir şekilde geliştirilmesine yardımcı olur.

Python'da OOP'nin Temel Kavramları:

  1. Sınıf (Class): Nesnelerin şablonudur. Bir sınıf, bir nesnenin özelliklerini ve davranışlarını tanımlar. Örneğin, bir Araba sınıfı, tüm arabalar için ortak olan özellikler (renk, model) ve davranışlar (hızlanma, fren yapma) içerebilir.

    class Araba: def __init__(self, model, renk): self.model = model # Özellik (attribute) self.renk = renk # Özellik (attribute) def hizlan(self): # Metot (method) print(f"{self.model} hızlanıyor!")
  2. Nesne (Object): Sınıftan türetilmiş bir örnektir. Sınıflar bir şablon oluştururken, nesneler bu şablona göre yaratılan gerçek örneklerdir.

    araba1 = Araba("Toyota", "Kırmızı") # Nesne oluşturma araba1.hizlan() # Toyota hızlanıyor!
  3. Kapsülleme (Encapsulation): Verilerin ve fonksiyonların bir sınıf içinde toplanması ve dış dünyadan gizlenmesi anlamına gelir. Yani, bir sınıfın dışından bir nesnenin iç yapısına doğrudan erişim engellenir. Bu, kodun daha güvenli olmasını sağlar.

    class Kisi: def __init__(self, isim, yas): self.isim = isim self.__yas = yas # __ ile gizlenen özel bir özellik (private attribute) def yas_getir(self): return self.__yas # Kapsüllemeyi koruyarak dışarıdan erişim kisi1 = Kisi("Ali", 30) print(kisi1.yas_getir()) # 30
  4. Kalıtım (Inheritance): Bir sınıfın başka bir sınıftan özelliklerini ve metodlarını miras almasıdır. Böylece tekrar tekrar kod yazmak yerine, mevcut sınıfların işlevselliği genişletilebilir.

    class ElektrikliAraba(Araba): # Araba sınıfından kalıtım def __init__(self, model, renk, pil_kapasitesi): super().__init__(model, renk) # Üst sınıfın (Araba) init'ini çağırma self.pil_kapasitesi = pil_kapasitesi def sarj_et(self): print(f"{self.model} şarj ediliyor.") tesla = ElektrikliAraba("Tesla", "Beyaz", 100) tesla.sarj_et() # Tesla şarj ediliyor.
  5. Çok Biçimlilik (Polymorphism): Farklı sınıflardan nesnelerin aynı metotları kullanabilmesi anlamına gelir. Bu, aynı isimli metodun farklı sınıflar tarafından farklı şekillerde tanımlanmasına olanak tanır.

    class Kopek: def ses_cikar(self): print("Hav hav!") class Kedi: def ses_cikar(self): print("Miyav!") def hayvan_sesi(hayvan): hayvan.ses_cikar() # Aynı metot ismi farklı sınıflar için çalışıyor kopek = Kopek() kedi = Kedi() hayvan_sesi(kopek) # Hav hav! hayvan_sesi(kedi) # Miyav!

Python'da OOP'nin Avantajları:

  • Kodun yeniden kullanılabilirliğini artırır (kalıtım sayesinde).
  • Kodun düzenli ve modüler olmasını sağlar.
  • Gerçek dünyadaki kavramları modellemeye yardımcı olur.
  • Bakımı ve genişletilmesi kolay yazılımlar oluşturur.


Yorum Ekle

Üzerine gel