Sobes.tech
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ı:

  1. Kapsülleme: Verilerin ve metodların bir sınıf içinde gizlenmesi, erişiminin arayüz aracılığıyla sağlanması.
  2. 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ı.
  3. Ç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):

  1. Tek Sorumluluk Prensibi (SRP): Her sınıfın tek bir sorumluluğu olmalı.
  2. Açık/Kapalı Prensibi (OCP): Sınıflar genişletilmeye açık, değişikliğe kapalı olmalı.
  3. 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ı.
  4. Arayüzlerin Ayrılması Prensibi (ISP): Müşteriler, kullanmadıkları arayüzlere bağlı olmamalı.
  5. 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