C# Dersleri 73 - Sınıf İlişkileri

C# Dersleri 73 - Sınıf İlişkileri


C# Sınıf İlişkileri (Class Relationships)

Sınıf ilişkileri, Nesne Yönelimli Programlama (OOP) kavramları içinde, sınıfların birbirleriyle nasıl ilişkilendirildiğini ve nasıl işbirliği içinde çalıştığını belirler. C#’ta sınıf ilişkileri, kodun modüler ve yeniden kullanılabilir olmasını sağlamak için kullanılır.

Sınıf İlişkisi Türleri

C#’ta en yaygın kullanılan sınıf ilişkileri şunlardır:

  • Bağımsız (Independent) İlişki: İki sınıf birbirinden bağımsızdır.
  • Bağımlı (Dependency) İlişki: Bir sınıf, başka bir sınıfın işlevlerini çağırarak kullanır.
  • Birliktelik (Association): Bir sınıf başka bir sınıfın nesnesini özellik olarak tutar.
  • Kapsülleme (Aggregation): Bir sınıf başka bir sınıfın nesnesini içerir, ancak bu nesne bağımsız olarak var olabilir.
  • Bileşim (Composition): Bir sınıf başka bir sınıfın nesnesini içerir ve nesne, bağlı olduğu sınıf olmadan var olamaz.
  • Kalıtım (Inheritance): Bir sınıf, başka bir sınıfın özelliklerini ve metotlarını devralır.

1. Bağımsız (Independent) İlişki

İki sınıfın birbirinden tamamen bağımsız olduğu bir ilişki türüdür. Aşağıdaki örnekte, Car ve Animal sınıfları birbiriyle ilişkili değildir:

class Car
{
    public string Model;
}

class Animal
{
    public string Species;
}

2. Bağımlı (Dependency) İlişki

Bir sınıf, başka bir sınıfın metotlarını çağırarak ondan faydalanır:

class Logger
{
    public void Log(string message)
    {
        Console.WriteLine($"Log: {message}");
    }
}

class User
{
    public void SaveUser()
    {
        Logger logger = new Logger();
        logger.Log("Yeni kullanıcı kaydedildi.");
    }
}

3. Birliktelik (Association)

Bir sınıf başka bir sınıfın nesnesini özellik olarak tutabilir:

class Engine
{
    public string Type = "V8";
}

class Car
{
    public Engine CarEngine; // Car sınıfı, Engine nesnesine sahip olabilir

    public Car()
    {
        CarEngine = new Engine();
    }
}

4. Kapsülleme (Aggregation)

Bir sınıf başka bir sınıfın nesnesini içerir, ancak bu nesne kendi başına da var olabilir.

class Department
{
    public string Name;
}

class Employee
{
    public string EmployeeName;
    public Department EmployeeDepartment;

    public Employee(string name, Department department)
    {
        EmployeeName = name;
        EmployeeDepartment = department;
    }
}

5. Bileşim (Composition)

Bir sınıf başka bir sınıfın nesnesini içerir ve bu nesne, bağlı olduğu sınıf olmadan var olamaz.

class CPU
{
    public string Model;
    
    public CPU(string model)
    {
        Model = model;
    }
}

class Computer
{
    private CPU cpu;

    public Computer(string model)
    {
        cpu = new CPU(model); // Bilgisayar olmadan CPU var olamaz
    }
}

6. Kalıtım (Inheritance)

Bir sınıf, başka bir sınıftan türetilerek onun özelliklerini ve metotlarını miras alır:

class Animal
{
    public string Name;

    public void Eat()
    {
        Console.WriteLine($"{Name} yemek yiyor.");
    }
}

class Dog : Animal
{
    public void Bark()
    {
        Console.WriteLine($"{Name} havlıyor.");
    }
}

Sonuç

C#’ta sınıf ilişkileri, programın esnek ve sürdürülebilir olmasını sağlamak için kullanılır. Kalıtım, kapsülleme, bileşim ve diğer ilişkileri anlamak, nesne yönelimli programlamada başarılı olmanın temel taşlarından biridir.

Bu içeriği beğendiyseniz paylaşarak destek olabilirsiniz!


Eğitim İçeriği

Eğitim C# Dersleri
Kategori Programlama Dili
Ders Adeti 80 Ders
Dil Türkçe
Güncelleme 04/2024
  • HTML Dersleri

    HTML Dersleri Sıfırdan İleri Seviyeye

    Kategori Web Programlama
    Ders Süresi 19 Ders
    Dil Türkçe
    Güncelleme 12/2020
    Derse Başla
  • Java Dersleri

    Java Dersleri ve Nesne Yönelimli Programlama

    Kategori Programlama Dili
    Ders Süresi 125 Ders
    Dil Türkçe
    Güncelleme 09/2020
    Derse Başla
  • CSS Dersleri

    CSS Dersleri Başlangıçtan İleri Seviyeye

    Kategori Web Programlama
    Ders Süresi 49 Ders
    Dil Türkçe
    Güncelleme 10/2021
    Derse Başla
  • Java Örnek Projeler

    Java Örnek Projeler

    Kategori Programlama Dili
    Ders Süresi 20 Ders
    Dil Türkçe
    Güncelleme 10/2022
    Derse Başla
  • C# Dersleri

    C# Dersleri ve Nesne Yönelimli Programlama

    Kategori Programlama Dili
    Ders Süresi 100 Ders
    Dil Türkçe
    Güncelleme 04/2024
    Derse Başla