Python

19. Python Sınıflar ve Nesneler

Python’da Nesne Tabanlı Programlama (Object-Oriented Programming – OOP), yazılımı daha modüler, bakımı kolay ve tekrar kullanılabilir hale getirmek için kullanılan bir yaklaşımdır. OOP’nin temel taşlarından ikisi sınıflar (classes) ve nesneler (objects)‘dir. Bu makalede Python’da sınıf ve nesne kavramları detaylı olarak ele alınacaktır.

Sınıflar (Classes) Nedir?

Sınıf, nesnelerin şablonudur. Bir sınıf, nesnelerin taşıyacağı verileri (nitelikler) ve bu veriler üzerinde işlem yapacak fonksiyonları (metotlar) tanımlar.

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

    def bilgileri_goster(self):
        print(f"{self.yil} model {self.marka} {self.model}")

__init__ Metodu

Bu metod, bir sınıftan yeni bir nesne oluşturulduğunda otomatik çalışır. Nesnenin ilk değerlerini belirlemek için kullanılır.

self Anahtar Kelimesi

Sınıf içinde tanımlanan metotların nesneye erişebilmesi için kullanılır.

Nesneler (Objects) Nedir?

Sınıf bir şablonsa, nesne bu şablona göre oluşturulmuş bir örnektir.

araba1 = Araba("Toyota", "Corolla", 2020)
araba2 = Araba("Honda", "Civic", 2022)

araba1.bilgileri_goster()  # 2020 model Toyota Corolla
araba2.bilgileri_goster()  # 2022 model Honda Civic

Metotlar (Methods)

Bir sınıf içinde tanımlanan fonksiyonlara “metot” denir. Nesnenin davranışlarını tanımlar.

class Ogrenci:
    def __init__(self, ad, soyad):
        self.ad = ad
        self.soyad = soyad
        self.notlar = []

    def not_ekle(self, not_):
        self.notlar.append(not_)

    def ortalama(self):
        return sum(self.notlar) / len(self.notlar)

ogrenci1 = Ogrenci("Ahmet", "Yılmaz")
ogrenci1.not_ekle(90)
ogrenci1.not_ekle(80)
print(ogrenci1.ortalama())  # 85.0

Kapsülleme (Encapsulation)

Verilerin ve metotların bir sınıf içinde toplanmasıdır. Dışarıdan erişimi sınırlamak için özel nitelikler tanımlanabilir.

class BankaHesabi:
    def __init__(self, isim, bakiye):
        self.isim = isim
        self.__bakiye = bakiye  # Özel nitelik

    def bakiye_goster(self):
        print(f"{self.isim} adlı hesabın bakiyesi: {self.__bakiye} TL")

    def para_yatir(self, miktar):
        self.__bakiye += miktar

hesap = BankaHesabi("Ali", 1000)
hesap.para_yatir(500)
hesap.bakiye_goster()  # Ali adlı hesabın bakiyesi: 1500 TL

Sonuç

Sınıflar ve nesneler, Python’da daha yapılı ve anlaşılabilir kod yazmanın temel taşlarındandır. Nesne Tabanlı Programlama, gerçek hayattaki varlıkları ve işleyişleri yazılıma taşıyarak programlamayı daha sezgisel hale getirir.

Bir sonraki adımda “kalıtım (inheritance)”, “polimorfizm (polymorphism)” ve “soyut sınıflar (abstract classes)” gibi daha ileri OOP kavramlarına geçilebilir.

Yorum Gönder

Bir yanıt yazın

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