Sınıf (Class) ve Nesne (Object): C# ile OOP Temelleri

crazy_coder

Moderatör
Katılım
20 Şub 2026
Mesajlar
204
Tepkime puanı
0
Puanları
16

C# ile OOP Temelleri: Sınıf (Class) ve Nesne (Object) Nedir?​


Gerçek dünyada her şey bir nesnedir; arabanız, telefonunuz, hatta bir banka hesabı... Programlama dünyasında ise bu nesneleri oluşturabilmek için bir "taslağa" ihtiyacımız vardır. İşte o taslağa Sınıf (Class), o taslaktan üretilen canlı örneğe ise Nesne (Object) diyoruz.



1. Sınıf ve Nesne Arasındaki Fark: Mimar ve Bina Örneği​


Bu kavramı anlamanın en kolay yolu mimari bir örnek kullanmaktır:


  • []Class (Sınıf): Bir binanın projesidir (mavi kopyası). Kâğıt üzerindedir, içinde yaşayamazsınız ama binanın kaç odası olacağı, rengi ve yüksekliği orada yazılıdır.
    []Object (Nesne): O projeye bakılarak inşa edilmiş gerçek binadır. Artık somuttur, bellekte yer kaplar ve içine veri girebilirsiniz.



2. Bir Sınıfın Anatomisi: Özellikler ve Metotlar​


Bir sınıf temel olarak iki bileşenden oluşur:

Fields/Properties (Alanlar/Özellikler): Nesnenin neye sahip olduğu (Renk, Model, Hız).

Methods (Metotlar): Nesnenin ne yapabildiği (Hızlan, Fren Yap, Far Aç).

C#:
// Sınıf Tanımlama
public class Araba
{
// Özellikler (Properties)
public string Marka { get; set; }
public string Model { get; set; }
public int Hiz { get; set; }

// Metot (Davranış)
public void BilgiYazdir() 
{
    Console.WriteLine($"Araba: {Marka} {Model}, Mevcut Hız: {Hiz} km/s");
}

}



3. Nesne Oluşturma (Instantiating)​


Bir sınıftan nesne üretmek için new anahtar kelimesini kullanırız. Bu işlem, bilgisayarın belleğinde (Heap bölgesinde) bu nesne için bir yer ayrılmasını sağlar.

C#:
// Nesne oluşturma
Araba benimArabam = new Araba();

// Özelliklere değer atama
benimArabam.Marka = "Tesla";
benimArabam.Model = "Model S";
benimArabam.Hiz = 120;

// Metodu çağırma
benimArabam.BilgiYazdir();



4. Constructor (Yapıcı Metot) Nedir?​

Bir nesne oluşturulduğu anda otomatik olarak çalışan özel bir metottur. Sınıf ile aynı ada sahiptir ve geri dönüş tipi yoktur. Genellikle nesnenin ilk değerlerini atamak için kullanılır.

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

// Constructor metot
public Kullanici(string ad) 
{
    this.Ad = ad;
    Console.WriteLine($"{ad} isimli kullanıcı oluşturuldu.");
}

}

// Kullanım:
Kullanici k1 = new Kullanici("Gökhan"); // "Gökhan isimli kullanıcı oluşturuldu" yazar.



5. Static vs Instance (Örnekleme)​


Sınıf içinde bir üyeyi static olarak tanımlarsanız, o üye nesneye değil sınıfa ait olur. Yani o değişkene ulaşmak için new ile nesne üretmenize gerek kalmaz.


  • []Instance: Her nesne için ayrı değerler (Örn: Her arabanın plakası farklıdır).
    []Static: Tüm nesneler için ortak olan değerler (Örn: Arabaların tekerlek sayısı genellikle 4'tür).

C#:
public class Matematik
{
public static double Pi = 3.14; // Nesne üretmeden Matematik.Pi şeklinde erişilebilir.
}



Neden Sınıf Kullanmalıyız?​


AvantajAçıklama
Düzenİlgili verileri ve fonksiyonları bir arada tutar.
Yeniden KullanımBir kez yaz, binlerce farklı nesne üret.
SoyutlamaKarmaşık kodları sınıf içine gizleyip dışarıya sadece basit metotlar sunar.



Sonuç​


Sınıf ve nesne yapısı, C# programlamanın temel yapı taşıdır. Bu yapıyı iyi kavradığınızda, sadece kod yazmakla kalmaz, aynı zamanda projelerinizi tıpkı bir mimar gibi tasarlamaya başlarsınız. Bir sonraki aşamada, bu sınıfların birbirlerinden nasıl miras aldığını (Inheritance) göreceğiz.
 
Geri
Üst