Python’da Sınıflar ve Nesneler. Nesne Yönelimli Programlama (OOP) temelinde sınıflar ve nesneler yer alır. Bu kavramlar, programları daha modüler, düzenli ve bakımı kolay hale getirmek için kullanılır. Python, OOP’yi destekleyen bir dil olarak, sınıflar ve nesneler aracılığıyla programları yapılandırmanıza olanak tanır.
1. Sınıf (Class)
Bir sınıf, nesneler için bir şablon veya blueprint olarak düşünülebilir. Sınıflar, belirli bir türdeki nesnelerin sahip olacağı özellikleri (attributes) ve metotları (methods) tanımlar. Sınıflar genellikle soyut bir kavramı veya bir varlığı temsil eder.
a. Sınıf Tanımlama
Python’da bir sınıf tanımlamak için class
anahtar kelimesi kullanılır.
Örnek:
class Araba: # Yapıcı Metot (Constructor) def __init__(self, renk, model, hiz): self.renk = renk self.model = model self.hiz = hiz # Metotlar def hareket_et(self): print(f"{self.model} hareket ediyor.") def dur(self): print(f"{self.model} durdu.")
Bu örnekte, Araba
adında bir sınıf tanımlanmıştır. Sınıfın renk
, model
ve hiz
adında özellikleri ve hareket_et
ile dur
adında metotları vardır.
b. Yapıcı Metot (Constructor) – __init__
Yapıcı metot (__init__
), bir sınıftan yeni bir nesne oluşturulduğunda otomatik olarak çağrılan özel bir metottur. Bu metot, nesneye ilk değerleri atamak için kullanılır.
Örnek:
class Kedi: def __init__(self, isim, renk): self.isim = isim self.renk = renk def miyavla(self): print(f"{self.isim} miyavlıyor.")
Yukarıdaki Kedi
sınıfında, isim
ve renk
özellikleri __init__
metodu ile atanır.
2. Nesne (Object)
Bir nesne, belirli bir sınıfın bir örneğidir. Sınıf, genel bir şablon iken, nesne bu şablona göre yaratılmış somut bir varlıktır. Her nesne, kendi verilerine (özellikler) ve davranışlarına (metotlar) sahiptir.
a. Nesne Oluşturma
Bir nesne oluşturmak için, sınıfı bir fonksiyon gibi çağırmanız yeterlidir.
Örnek:
# Araba sınıfından nesne oluşturma araba1 = Araba("Kırmızı", "Toyota", 120) araba2 = Araba("Mavi", "Honda", 100) # Kedi sınıfından nesne oluşturma kedi1 = Kedi("Minnoş", "Beyaz")
Bu örnekte, araba1
ve araba2
nesneleri Araba
sınıfından, kedi1
nesnesi ise Kedi
sınıfından oluşturulmuştur.
b. Nesne Özelliklerine Erişim
Bir nesnenin özelliklerine ve metotlarına nokta (.
) operatörü ile erişilir.
Örnek:
# Nesne özelliklerine erişim print(araba1.renk) # Kırmızı print(araba2.model) # Honda # Nesne metotlarını çağırma araba1.hareket_et() # Toyota hareket ediyor. araba2.dur() # Honda durdu. # Kedi nesnesi ile metot çağırma kedi1.miyavla() # Minnoş miyavlıyor.
Bu örnekte, araba1
, araba2
ve kedi1
nesnelerinin özelliklerine ve metotlarına erişim sağlanmıştır.
3. Sınıf ve Nesne Arasındaki İlişki
Sınıflar ve nesneler arasındaki ilişki, bir sınıfın bir blueprint olarak nesnelerin özelliklerini ve davranışlarını tanımladığı anlamına gelir. Her nesne, tanımlı bir sınıfın bir örneğidir ve o sınıfta tanımlanan tüm özelliklere ve metotlara sahiptir.
a. Bir Sınıfın Birden Fazla Nesnesi
Aynı sınıftan birden fazla nesne oluşturabilirsiniz ve bu nesneler birbirinden bağımsız olarak çalışabilir.
Örnek:
# Araba sınıfından birden fazla nesne oluşturma araba1 = Araba("Kırmızı", "Toyota", 120) araba2 = Araba("Mavi", "Honda", 100) araba3 = Araba("Yeşil", "Ford", 150) # Nesneleri bağımsız olarak kullanma araba1.hareket_et() # Toyota hareket ediyor. araba2.dur() # Honda durdu. araba3.hareket_et() # Ford hareket ediyor.
Bu örnekte, aynı sınıftan oluşturulan üç farklı nesne bağımsız olarak çalıştırılabilir.
b. Sınıf İçinde Metotların Kullanımı
Sınıf içindeki metotlar, genellikle nesnenin özelliklerine erişim sağlamak veya nesne üzerinde işlemler yapmak için kullanılır.
Örnek:
class Dikdortgen: def __init__(self, genislik, yukseklik): self.genislik = genislik self.yukseklik = yukseklik def alan(self): return self.genislik * self.yukseklik def cevre(self): return 2 * (self.genislik + self.yukseklik) # Nesne oluşturma ve metotları kullanma dikdortgen1 = Dikdortgen(5, 10) print("Alan:", dikdortgen1.alan()) # Alan: 50 print("Çevre:", dikdortgen1.cevre()) # Çevre: 30
Bu örnekte, Dikdortgen
sınıfından oluşturulan nesne üzerinde alan
ve cevre
metotları çağrılarak dikdörtgenin alanı ve çevresi hesaplanır.
4. Sınıf ve Nesne Özellikleri
Python’da sınıf ve nesne özellikleri, sınıfın ve nesnenin durumunu temsil eden veri alanlarıdır. Sınıf özellikleri tüm sınıf örnekleri (nesneler) tarafından paylaşılırken, nesne özellikleri her nesne için özeldir.
a. Sınıf Özellikleri
Sınıf özellikleri, sınıf düzeyinde tanımlanır ve tüm nesneler tarafından paylaşılır.
Örnek:
class Ogrenci: okul = "XYZ Lisesi" # Sınıf özelliği def __init__(self, isim, sinif): self.isim = isim # Nesne özelliği self.sinif = sinif # Nesne özelliği # Nesne oluşturma ogrenci1 = Ogrenci("Ali", 10) ogrenci2 = Ogrenci("Ayşe", 11) print(ogrenci1.okul) # XYZ Lisesi print(ogrenci2.okul) # XYZ Lisesi
Bu örnekte, okul
sınıf özelliği tüm Ogrenci
nesneleri tarafından paylaşılır.
b. Nesne Özellikleri
Nesne özellikleri, __init__
metodu içinde tanımlanır ve her nesne için özeldir.
Örnek:
class Ogrenci: okul = "XYZ Lisesi" # Sınıf özelliği def __init__(self, isim, sinif): self.isim = isim # Nesne özelliği self.sinif = sinif # Nesne özelliği ogrenci1 = Ogrenci("Ali", 10) ogrenci2 = Ogrenci("Ayşe", 11) print(ogrenci1.isim) # Ali print(ogrenci2.isim) # Ayşe
Bu örnekte, isim
ve sinif
nesne özellikleridir ve her nesne için farklı değerlere sahip olabilir.
Sınıflar ve nesneler, Python’da Nesne Yönelimli Programlama’nın temel yapı taşlarıdır. Sınıflar, nesnelerin özelliklerini ve davranışlarını tanımlarken, nesneler bu sınıfların somut örnekleridir. Bu yapı, kodun modüler, tekrar kullanılabilir ve yönetilebilir olmasını sağlar. Python‘da sınıflar ve nesneler oluşturmak, karmaşık projeleri daha düzenli ve okunabilir hale getirir.
Bir yanıt yazın