Junior
Nesne yönelimli programlamanın paradigmaları ve ilkeleri hakkında bilgi verin.
sobes.tech yapay zeka
AI'dan gelen yanıt
Nesne Yönelimli Programlama (OOP) Paradigmaları:
- Kapsülleme: Verilerin ve metodların bir sınıf içinde gizlenmesi, erişiminin arayüz aracılığıyla sağlanması.
- Miras: Var olan sınıflardan (üst sınıflar) yeni sınıflar (alt sınıflar) oluşturarak özellik ve metodların miras alınması.
- Çok Biçimlilik: Farklı sınıflardan nesnelerin ortak bir arayüz aracılığıyla kullanılması ve her sınıfa özgü davranışların gerçekleştirilmesi.
OOP Prensipleri (SOLID):
- Tek Sorumluluk Prensibi (SRP): Her sınıfın tek bir sorumluluğu olmalı.
- Açık/Kapalı Prensibi (OCP): Sınıflar genişletilmeye açık, değişikliğe kapalı olmalı.
- Liskov Yerine Geçme Prensibi (LSP): Bir temel sınıfın nesneleri, türetilmiş sınıf nesneleriyle değiştirildiğinde, programın doğruluğu bozulmamalı.
- Arayüzlerin Ayrılması Prensibi (ISP): Müşteriler, kullanmadıkları arayüzlere bağlı olmamalı.
- Bağımlılıkların Tersine Çevrilmesi Prensibi (DIP): Üst modüller, alt modüllere bağlı olmamalı; ikisi de soyutlamalara bağlı olmalı. Soyutlamalar, detaylara bağlı olmamalı; detaylar, soyutlamalara bağlı olmalı.
Kapsülleme ve Miras Örneği:
// Temel sınıf
public class Animal
{
public string Name { get; set; }
public Animal(string name)
{
Name = name;
}
public virtual void MakeSound()
{
Console.WriteLine("Bazı genel ses");
}
}
// Türemiş sınıf
public class Dog : Animal
{
public Dog(string name) : base(name)
{
}
// Temel sınıf metodunun üzerine yazma
public override void MakeSound()
{
Console.WriteLine("Hav hav!");
}
}
Çok Biçimlilik Örneği:
Animal myAnimal = new Dog("Buddy");
myAnimal.MakeSound(); // "Hav hav!" yazdırır