Python

18. Python Nesne Tabanlı Programlama (OOP) Temelleri

Nesne Tabanlı Programlama (Object-Oriented Programming, OOP), yazılımı nesneler ve bu nesnelerin etkileşimleri üzerine kuran bir yaklaşımdır. Python, OOP destekleyen ve bu yapıyı uygulamak için basit bir sözdizimi sunan bir programlama dilidir.

1. Sınıf (Class) ve Nesne (Object) Nedir?

  • Sınıf: Nesnelerin şablonudur. Davranışlar (fonksiyonlar) ve özellikler (değişkenler) tanımlanır.
  • Nesne: Sınıftan üretilmiş, somut bir yapıdır.

Örnek:

class Araba:
    def __init__(self, marka, model):
        self.marka = marka
        self.model = model

    def bilgi_goster(self):
        print(f"Araba: {self.marka} {self.model}")

# Nesne oluşturalım
araba1 = Araba("Toyota", "Corolla")
araba1.bilgi_goster()

2. __init__ Metodu

Bu metod, bir sınıftan nesne oluşturulduğunda çalışan yapıcı (constructor) fonksiyondur. self, oluşturulan nesnenin kendisini temsil eder.

3. Nitelikler (Attributes) ve Metotlar (Methods)

  • Nitelikler: Nesneye ait verilerdir.
  • Metotlar: Nesneye ait işlevlerdir.
class Ogrenci:
    def __init__(self, isim, yas):
        self.isim = isim
        self.yas = yas

    def selamla(self):
        print(f"Merhaba, ben {self.isim}, {self.yas} yaşındayım.")

ogrenci1 = Ogrenci("Ali", 21)
ogrenci1.selamla()

4. Kalıtım (Inheritance)

Bir sınıfın, başka bir sınıfın özelliklerini devralmasıdır.

class Hayvan:
    def ses_cikar(self):
        print("Bir ses çıkardı")

class Kedi(Hayvan):
    def ses_cikar(self):
        print("Miyav")

kedi1 = Kedi()
kedi1.ses_cikar()

5. Çok Biçimlilik (Polymorphism)

Farklı sınıfların, aynı metodu farklı şekillerde kullanabilmesidir.

class Kus:
    def konus(self):
        print("Cik cik")

class Papağan:
    def konus(self):
        print("Merhaba!")

def hayvan_konustur(hayvan):
    hayvan.konus()

hayvan_konustur(Kus())
hayvan_konustur(Papağan())

6. Kapsülleme (Encapsulation)

Verilerin doğrudan erişimini kısıtlayarak, sadece metotlar aracılığıyla erişim sağlanmasıdır.

class BankaHesabi:
    def __init__(self, bakiye):
        self.__bakiye = bakiye

    def bakiye_goster(self):
        print(f"Bakiyeniz: {self.__bakiye} TL")

    def para_cek(self, miktar):
        if miktar <= self.__bakiye:
            self.__bakiye -= miktar
            print("Para çekildi.")
        else:
            print("Yetersiz bakiye.")

hesap = BankaHesabi(1000)
hesap.bakiye_goster()
hesap.para_cek(200)
hesap.bakiye_goster()

Bu temel yapılarla Python’da nesne tabanlı programlamanın temelleri atılabilir. Gerçek dünyadaki nesneleri yazılıma daha yakın ve modüler yapılarda modellemek için OOP olmazsa olmazdır.

Yorum Gönder

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir