NESNEYE YÖNELİK PROGRAMLAMA
Nesneye Yönelik Programlama (OOP) Nedir?
Nesneye Yönelik Programlama (OOP), yazılım geliştirmede nesneleri ve bunların etkileşimlerini temel alan bir programlama paradigmasıdır. OOP, yazılımın daha modüler, esnek ve yeniden kullanılabilir olmasını sağlar.

OOP'nin Temel Kavramları
OOP'nin dört ana prensibi vardır:
Sınıflar (Classes): Nesnelerin nasıl oluşturulacağını belirleyen şablonlardır.
Nesneler (Objects): Sınıflardan türetilen, belirli veri ve işlevleri barındıran varlıklardır.
Encapsulation (Kapsülleme): Verilerin ve işlevlerin bir arada tutulmasıdır. Bu, nesnelerin iç durumunu gizler.
Inheritance (Kalıtım): Bir sınıfın özelliklerini başka bir sınıfa aktarma yeteneğidir. Bu, kodun yeniden kullanılmasını sağlar.
Polymorphism (Çok Biçimlilik): Farklı nesnelerin aynı işlevi farklı şekillerde gerçekleştirmesine olanak tanır.
OOP'nin Avantajları
Modülerlik: Kodun farklı bölümleri bağımsız olarak geliştirilebilir.
Yeniden Kullanılabilirlik: Var olan sınıflar yeni projelerde tekrar kullanılabilir.
Bakım Kolaylığı: Kodun anlaşılması ve bakımı daha kolaydır.
Gelişmiş Güvenlik: Kapsülleme sayesinde nesnelerin iç durumu korunur.
Örnek
from abc import ABC, abstractmethod
# 1. SINIF (CLASS) & 5. SOYUTLAMA (ABSTRACTION)
class Hayvan(ABC):
def __init__(self, ad, tur, yas):
self.ad = ad # Özellikler (Fields)
self.tur = tur
self.yas = yas
self.__saglik = "İyi" # 2. KAPSÜLLEME: Private (gizli) veri
# Kapsüllenmiş veriye erişim metodu
def saglik_oku(self):
return self.__saglik
@abstractmethod
def ses_cikar(self): # Soyut metot
pass
# 3. KALITIM (INHERITANCE)
class Kopek(Hayvan):
# 4. ÇOKBİÇİMLİLİK (POLYMORPHISM) - Metot ezme (override)
def ses_cikar(self):
return "Hav Hav!"
class Kedi(Hayvan):
def ses_cikar(self):
return "Miyav!"
class Kus(Hayvan):
def ses_cikar(self):
return "Cik Cik!"
# 1. NESNE (OBJECT) - Örneklem (Instance) oluşturma
kopek1 = Kopek("Karabaş", "Golden", 5)
kedi1 = Kedi("Tekir", "Sokak Kedisi", 3)
kus1 = Kus("Maviş", "Muhabbet", 1)
# TEST
print(f"{kopek1.ad} ({kopek1.tur}) ses çıkarıyor: {kopek1.ses_cikar()}")
print(f"{kedi1.ad} ses çıkarıyor: {kedi1.ses_cikar()}")
print(f"Kuşun sesi: {kus1.ses_cikar()}")
print(f"Köpeğin sağlık durumu (Kapsülleme): {kopek1.saglik_oku()}") Sonuç
Nesneye Yönelik Programlama, modern yazılım geliştirme süreçlerinde önemli bir rol oynamaktadır. OOP'nin temel kavramlarını anlamak, daha etkili ve sürdürülebilir yazılımlar geliştirmek için kritik bir adımdır.
Yorumlar