📘 10.2 – static Değişkenlerle Nesne Takibi
🔹 Açıklama:
Nesne tabanlı programlamada, bir sınıftan kaç adet nesne oluşturulduğunu veya hangi kullanıcıların sisteme giriş yaptığını takip etmek isteyebiliriz. Bu tür ortak bilgileri her nesne için ayrı ayrı tutmak yerine, sınıfa özgü tek bir static değişken ile kontrol etmek mümkündür.
static değişkenler, sınıfa özgüdür ve her yeni nesne oluşturulduğunda aynı değişkenin değeri paylaşılır. Böylece sistem çapında bir sayaç, toplam, durum veya bayrak kontrolü yapılabilir.
🔍 Nerelerde Kullanılır?
- Toplam nesne sayısını izlemek
- Oturum açma, işlem yapma, kayıt sayacı gibi durumları kaydetmek
- Nesne sayısına göre sistemde limit koymak (örnek: 3 kullanıcıdan fazla giriş yapılmasın)
- Öğrenci, müşteri, sipariş gibi varlıkların toplamını göstermek
- Uygulama içinde istatistiksel veri tutmak
💡 Avantajları:
Özellik | Açıklama |
---|---|
Tek kopya | Bellekte bir tane olur, tüm nesneler paylaşır |
Anlık izleme | Nesne oluşumu anlık olarak takip edilir |
Nesneye gerek yok | Gerekirse sınıf üzerinden erişilir |
Sayım | Otomatik sayaç gibi çalışabilir |
🎯 Kazanımlar:
Bu başlığı tamamladığında öğrenci:
- static değişkenle nesne oluşturulmasını nasıl takip edeceğini kavrar
- Uygulama boyunca ortak veri tutmanın yollarını öğrenir
- Kullanıcı işlemlerinin sistem çapında nasıl izleneceğini anlar
- Kodda static kullanımı ile performans ve kaynak kontrolü sağlar
🧪 10.2 – static Değişkenlerle Nesne Takibi: Uygulamalı 5 Örnek
📌 Örnek 1: Nesne Oluşum Sayısını Sayma
🎯 Amaç: Kaç adet Kitap nesnesi oluşturulduğunu takip et.
public class Kitap
{
public static int Sayac = 0;
public Kitap()
{
Sayac++;
}
}
// Kullanım:
Kitap k1 = new Kitap();
Kitap k2 = new Kitap();
MessageBox.Show("Toplam kitap: " + Kitap.Sayac);
📝 Açıklama:
Tüm Kitap nesneleri aynı sayaç değişkenini paylaşır.
📌 Örnek 2: Kullanıcı Girişi Takibi
🎯 Amaç: Sisteme giriş yapan kullanıcı sayısını göster.
public class Kullanici
{
public static int GirenSayisi = 0;
public string Ad;
public Kullanici(string ad)
{
this.Ad = ad;
GirenSayisi++;
}
}
// Kullanım:
Kullanici u1 = new Kullanici("Ayşe");
Kullanici u2 = new Kullanici("Ali");
MessageBox.Show("Giren toplam kullanıcı: " + Kullanici.GirenSayisi);
📝 Açıklama:
Her kullanıcı girişinde sayı artar, sistem çapında bilgi taşır.
📌 Örnek 3: Maksimum Nesne Sınırı Kontrolü
🎯 Amaç: En fazla 3 adet Ogrenci nesnesi oluşturulabilsin.
public class Ogrenci
{
public static int Sayac = 0;
public Ogrenci()
{
if (Sayac >= 3)
throw new Exception("Maksimum öğrenci sayısına ulaşıldı!");
Sayac++;
}
}
// Kullanım:
try
{
Ogrenci o1 = new Ogrenci();
Ogrenci o2 = new Ogrenci();
Ogrenci o3 = new Ogrenci();
Ogrenci o4 = new Ogrenci(); // hata fırlatır
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
📝 Açıklama:
İzin verilen sınıra ulaşılınca sistem otomatik durur.
📌 Örnek 4: Sipariş Takibi
🎯 Amaç: Toplam kaç sipariş oluşturulduğunu göster.
public class Siparis
{
public static int ToplamSiparis = 0;
public int SiparisNo;
public Siparis()
{
ToplamSiparis++;
SiparisNo = ToplamSiparis;
}
}
// Kullanım:
Siparis s1 = new Siparis();
Siparis s2 = new Siparis();
MessageBox.Show("Son sipariş no: " + s2.SiparisNo);
📝 Açıklama:
Her yeni sipariş sırayla numara alır. Sayım güvenlidir.
📌 Örnek 5: Uygulama Başından Beri Üretilen Nesne Sayısı
🎯 Amaç: Program boyunca kaç tane nesne üretildiğini göstermek.
public class Rapor
{
public static int UretilenNesne = 0;
public Rapor()
{
UretilenNesne++;
}
}
// Kullanım:
for (int i = 0; i < 100; i++)
{
new Rapor();
}
MessageBox.Show("Toplam rapor nesnesi: " + Rapor.UretilenNesne);
📝 Açıklama:
Kullanıcı bilmeden bile kaç nesne oluşturulmuş izlenebilir.
✅ Özet:
Bu örneklerle öğrenciler:
- static değişkenin tüm nesnelerce ortak kullanıldığını
- Sistem çapında sayaç, sınır ve istatistik tutmanın temelini
- Nesne oluşturma sürecini kontrol altına almayı öğrendi
Pingback : A'DAN Z'YE C# İLE NTP - Hasan TANDOĞAN