Yükleniyor...

Sınıflar ve Nesneler

C# dilinde sınıflar ve nesneler, nesne yönelimli programlamanın (OOP) temel yapı taşlarıdır. Sınıf, nesnelerin sahip olacağı özellikleri (fields/properties) ve davranışları (methods) tanımlayan bir şablondur. Nesne ise bu sınıfın somut bir örneğidir ve kendi özel değerlerini taşıyabilir. Sınıflar ve nesneler, kodun modüler, yeniden kullanılabilir ve sürdürülebilir olmasını sağlar, ayrıca karmaşık sistemlerin yönetilmesini kolaylaştırır.
C#’ta sınıflar, özellikler, alanlar, yöntemler, yapıcılar ve yıkıcılar içerebilir. Bu yapı sayesinde veriler ve algoritmalar düzenli bir şekilde organize edilebilir. Sınıflar ve nesneler, encapsulation (kapsülleme), inheritance (kalıtım) ve polymorphism (çok biçimlilik) gibi OOP prensiplerini uygulamak için kullanılır.
Bu eğitimde, C#’ta sınıf tanımlamayı, nesne oluşturmayı, özellikleri ve yöntemleri kullanmayı öğreneceksiniz. Ayrıca kalıtım ve çok biçimlilik kavramlarını pratik örneklerle görecek, performans optimizasyonu ve hata yönetimi gibi ileri seviye konularda bilgi sahibi olacaksınız. Sonuç olarak, yazılım mimarisi ve proje geliştirme süreçlerinde sınıflar ve nesneleri etkin şekilde kullanabilecek yetkinliğe ulaşacaksınız.

Temel Örnek

text
TEXT Code
using System;

namespace OOPExample
{
class Kisi
{
public string Isim { get; set; }
public int Yas { get; set; }

public Kisi(string isim, int yas)
{
Isim = isim;
Yas = yas;
}

public void BilgiGoster()
{
Console.WriteLine($"İsim: {Isim}, Yaş: {Yas}");
}
}

class Program
{
static void Main(string[] args)
{
Kisi k1 = new Kisi("Ahmet", 30);
k1.BilgiGoster();

Kisi k2 = new Kisi("Elif", 25);
k2.BilgiGoster();

Console.ReadLine();
}
}

}

Yukarıdaki örnek, Kisi sınıfını ve iki nesnesini göstermektedir. Sınıfın Isim ve Yas adında iki özelliği vardır. Yapıcı metod (constructor), nesneler oluşturulurken bu özelliklerin başlatılmasını sağlar. BilgiGoster metodu, nesnenin bilgilerini konsola yazdırır. Program sınıfında Main metodunda iki farklı Kisi nesnesi oluşturulmuş ve her biri kendi değerleri ile çalıştırılmıştır. Bu yapı, gerçek dünya nesnelerinin programlama dünyasında nasıl temsil edildiğini gösterir ve kodun tekrar kullanılabilirliğini sağlar.

Pratik Örnek

text
TEXT Code
using System;

namespace OOPAdvancedExample
{
class Calisan
{
public string Isim { get; set; }
public int Yas { get; set; }
public double Maas { get; set; }

public Calisan(string isim, int yas, double maas)
{
Isim = isim;
Yas = yas;
Maas = maas;
}

public virtual void BilgiGoster()
{
Console.WriteLine($"Çalışan: {Isim}, Yaş: {Yas}, Maaş: {Maas}");
}
}

class Mudur : Calisan
{
public string Departman { get; set; }

public Mudur(string isim, int yas, double maas, string departman)
: base(isim, yas, maas)
{
Departman = departman;
}

public override void BilgiGoster()
{
base.BilgiGoster();
Console.WriteLine($"Departman: {Departman}");
}
}

class Program
{
static void Main(string[] args)
{
Calisan c1 = new Calisan("Mehmet", 28, 5000);
c1.BilgiGoster();

Mudur m1 = new Mudur("Ayşe", 40, 10000, "Satış");
m1.BilgiGoster();

Console.ReadLine();
}
}

}

Bu örnek, kalıtım ve çok biçimlilik kavramlarını göstermektedir. Calisan sınıfı temel sınıf olarak tanımlanmıştır, Mudur sınıfı ise Calisan sınıfından türemiştir ve Departman özelliğini ekler. BilgiGoster metodu override edilerek Mudur nesneleri için genişletilmiş bir çıktı sağlar. base.BilgiGoster() kullanımı, temel sınıfın işlevini koruyarak genişletmeye olanak verir. Bu yaklaşım, kod tekrarını önler ve profesyonel C# projelerinde temiz, sürdürülebilir bir mimari sağlar.

C#’ta sınıflar ve nesnelerle çalışırken en iyi uygulamalar; özellikleri kapsüllemek için property kullanmak, nesneleri doğru şekilde başlatmak için constructor kullanmak, kalıtım ve çok biçimliliği mantıklı kullanmak ve gereksiz bellek kullanımını önlemek için kaynakları serbest bırakmaktır. Yaygın hatalar arasında alanlara doğrudan erişim, hatalı exception yönetimi ve verimsiz algoritmalar yer alır. Performans optimizasyonu için uygun veri yapıları seçilmeli, gereksiz metod çağrıları azaltılmalı ve referans/değer türlerinin doğru kullanımı sağlanmalıdır. Güvenlik açısından, hassas verilerin erişimi kısıtlanmalı ve en az ayrıcalık prensibi uygulanmalıdır.

📊 Referans Tablosu

C# Element/Concept Description Usage Example
Sınıf Nesnelerin şablonu class Kisi { public string Isim; }
Nesne Sınıfın örneği Kisi k = new Kisi("Ahmet", 30);
Constructor Özellikleri başlatır public Kisi(string isim) { Isim = isim; }
Metod Sınıf içi fonksiyon public void BilgiGoster() { Console.WriteLine(Isim); }
Kalıtım Sınıfın miras alması class Mudur : Calisan { }
Polimorfizm Metodların farklı implementasyonu public override void BilgiGoster() { }

Sınıflar ve nesneler, C# uygulamalarında temel yapı taşlarını oluşturur. Özellikler, metodlar, constructorlar, kalıtım ve polimorfizm kavramlarını anlamak, gerçek dünya nesnelerini kod içerisinde modellemeyi ve algoritmaları etkin şekilde uygulamayı sağlar. Sonraki adımlar arasında interface’ler, event’ler ve tasarım desenlerini öğrenmek, OOP yetkinliğinizi artıracaktır. Pratik uygulamalar ve C# dokümantasyonu, bu bilgileri pekiştirmenize yardımcı olacaktır.

🧠 Bilginizi Test Edin

Başlamaya Hazır

Bilginizi Test Edin

Bu konudaki anlayışınızı pratik sorularla test edin.

4
Sorular
🎯
70%
Geçmek İçin
♾️
Süre
🔄
Deneme

📝 Talimatlar

  • Her soruyu dikkatle okuyun
  • Her soru için en iyi cevabı seçin
  • Quiz'i istediğiniz kadar tekrar alabilirsiniz
  • İlerlemeniz üstte gösterilecek