C# Sınıf ve Nesne Yapısı (OOP Temelleri)

C#, Nesne Yönelimli (Object-Oriented) bir dildir. Bu yaklaşımda her şey bir nesne olarak düşünülür. Sınıf (Class), bir nesnenin taslağı veya planıdır; Nesne (Object) ise bu plandan üretilmiş canlı bir örnektir.

Mimar ve Bina Benzetmesi
Bir mimarın çizdiği ev planı Sınıf'tır. Bu plana bakılarak inşa edilen mahalledeki her bir ev ise Nesne'dir. Plan tektir, ancak ondan yüzlerce farklı ev (nesne) üretilebilir.

1) Sınıf Tanımlama ve Property Kullanımı

C#'ta sınıflar class anahtar kelimesi ile tanımlanır. İçerisindeki değişkenlere ise Property (Özellik) denir.

C# Class & Property Example
public class Araba {
    // Özellikler (Properties)
    public string Marka { get; set; }
    public string Model { get; set; }
    public int Yil { get; set; }

    // Metod
    public void Calistir() {
        Console.WriteLine($"{Marka} {Model} çalıştı!");
    }
}

2) Nesne Oluşturma (Instantiating)

Bir sınıftan nesne üretmek için new anahtar kelimesi kullanılır.

// Nesne üretme
Araba benimArabam = new Araba();
benimArabam.Marka = "Tesla";
benimArabam.Model = "Model 3";

benimArabam.Calistir(); // Çıktı: Tesla Model 3 çalıştı!

3) Yapıcı Metodlar (Constructor)

Bir nesne oluşturulduğu anda (new dendiğinde) otomatik olarak çalışan özel metodlardır. Sınıf ismiyle aynı ada sahiptirler ve genellikle başlangıç değerlerini atamak için kullanılırlar.

C# Constructor Example
public class Kullanici {
    public string Ad { get; set; }

    // Constructor (Yapıcı Metod)
    public Kullanici(string isim) {
        Ad = isim;
        Console.WriteLine("Yeni kullanıcı oluşturuldu: " + Ad);
    }
}

// Kullanımı:
Kullanici k = new Kullanici("Mehmet");
💡 Profesyonel İpucu: C#'ta prop yazıp iki kez Tab tuşuna basarsanız, Visual Studio otomatik olarak bir Property taslağı oluşturur. Bu, kod yazım hızınızı ciddi oranda artırır.

Özet

  • Sınıflar (Class) birer şablondur, nesneler (Object) ise o şablonun bellekteki halidir.
  • public belirleyicisi, sınıfın dışarıdan erişilebilir olmasını sağlar.
  • Constructor metodları geriye bir tip (void dahil) döndürmezler.
  • OOP sayesinde kodlarımızı daha organize ve modüler hale getiririz.