Python'da Sınıf ve Nesne: Nesne Yönelimli Programlamaya Giriş

Nesne yönelimli programlama (OOP), kodu daha düzenli ve yeniden kullanılabilir hale getiren bir yaklaşımdır. Sınıf, bir şeyin taslağı gibidir; nesne ise o taslaktan yapılan gerçek bir örnektir.

Bir analoji vermek gerekirse: sınıf, bir pasta tarifesidir; nesne ise o tarife kullanarak yapılan gerçek pastadır.

Python'da sınıf class anahtar kelimesiyle tanımlanır. İçinde veri (özellik) ve işlemler (metot) barındırır.

1class Araba:
2def __init__(self, marka, renk):
3self.marka = marka
4self.renk = renk
5
6def bilgi_ver(self):
7return f"{self.marka} markası, {self.renk} renkli araba"

Burada __init__ metodu sınıfın kurucusudur; nesne oluşturulurken otomatik çalışır. self ise nesnenin kendisini temsil eder.

Sınıftan nesne oluşturmak basittir. Sınıf adını parantezle çağırırsınız:

1arabam = Araba("Toyota", "kırmızı")
2baskasinin_arabasi = Araba("BMW", "siyah")
3
4print(arabam.bilgi_ver())
5print(baskasinin_arabasi.bilgi_ver())

Çıktı:

1Toyota markası, kırmızı renkli araba
2BMW markası, siyah renkli araba

Gerçekçi bir senaryo ile pekiştirelim:

1class HesapSahibi:
2def __init__(self, ad, bakiye):
3self.ad = ad
4self.bakiye = bakiye
5
6def para_yatir(self, tutar):
7self.bakiye += tutar
8print(f"{tutar} TL yatırıldı. Yeni bakiye: {self.bakiye} TL")
9
10def para_cek(self, tutar):
11if tutar <= self.bakiye:
12self.bakiye -= tutar
13print(f"{tutar} TL çekildi. Yeni bakiye: {self.bakiye} TL")
14else:
15print("Yetersiz bakiye!")
16
17def bakiye_sorgula(self):
18return f"{self.ad}'ın bakiyesi: {self.bakiye} TL"
19
20# Kullanım
21ayse = HesapSahibi("Ayşe", 1000)
22print(ayse.bakiye_sorgula())
23ayse.para_yatir(500)
24ayse.para_cek(200)
25ayse.para_cek(2000)

Çıktı:

1Ayşe'nin bakiyesi: 1000 TL
2500 TL yatırıldı. Yeni bakiye: 1500 TL
3200 TL çekildi. Yeni bakiye: 1300 TL
4Yetersiz bakiye!

Gördüğünüz gibi her nesne kendi verilerini tutar. Ayşe'nin hesabı Mehmet'in hesabından bağımsızdır. Bu, OOP'nin gücüdür: veri ve işlemleri bir araya getirerek, kodun bakımını ve genişletilmesini kolaylaştırır.

konu hakkında tepkinizi verebilirsiniz