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();
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?
| Avantaj | Açıklama |
|---|---|
| Düzen | İlgili verileri ve fonksiyonları bir arada tutar. |
| Yeniden Kullanım | Bir kez yaz, binlerce farklı nesne üret. |
| Soyutlama | Karmaşı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.