Static alanlar
- C# kursu
- Orta seviye
- Ders 30/116
- 4 dk
static alanların sınıf düzeyinde paylaşılmasını öğrenirsin.
Static alanlar
Bir statik alan (static field), sınıfın kendisine ait bir veridir. Örnek (instance) alanları her nesnede ayrı bir kopya tutarken, statik alanlar tüm örnekler arasında paylaşılan tek bir kopya tutar.
Bir alanı statik yapmak için static anahtar kelimesi kullanılır: public static int Count;. Bu alan new ile örnek üretilmeden önce de vardır. Sayaç, genel toplam ve tüm örneklerin paylaştığı durumlar için statik alanlar uygundur.
Statik alana erişim
Statik alana erişmek için nesne üretmek gerekmez; sınıf adı üzerinden yazılır: Counter.Count. Örnek üzerinden (counter.Count) de erişilebilir ama bu önerilmez; derleyici uyarı verir.
Statik alanlar sınıf yüklendiğinde varsayılan değere kurulur: int için 0, bool için false, referans türleri için null. İlk değer de verilebilir: public static int Count = 10;.
Uygulama Sayaç sınıfı
Counter sınıfına public static int Count = 0; alanını ekle. Yapıcı metot her çağrıda Count'u bir artırsın. Main içinde iki örnek üretip Counter.Count'u yazdır.
Başlangıç kodu
using System;
class Counter
{
// Sayaç alanını ekle (sınıf seviyesinde)
public Counter()
{
// Sayaç değerini bir artır
}
}
class Program
{
static void Main()
{
// İki örnek üret ve Count'u yazdır
}
}Örnek çözüm
using System;
class Counter
{
public static int Count = 0;
public Counter()
{
Count++;
}
}
class Program
{
static void Main()
{
new Counter();
new Counter();
Console.WriteLine(Counter.Count);
}
}Beklenen çıktı
2
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Hangisi geçerli bir statik alan tanımıdır?
- public int Count;
- static Count;
- public static int Count; Doğru cevap
- public static Count int;
Açıklama: `public static int Count;` hem `static` anahtar kelimesini hem de türü içerir.
2 Boşluğu doldur: statik alan tanımı
class Counter
{
public ____ = 0;
}
class Counter
{
public static int Count = 0;
}
Açıklama: `static int Count` ile sınıf seviyesinde sayaç tanımlandı.
3 Eşleştir: statik alan kavramları
| Kavram | Anlamı |
|---|---|
statik alan |
tüm örneklerle paylaşılır |
örnek alanı |
her nesnede ayrı kopya |
Counter.Count |
sınıf adıyla erişim |
new Counter() |
yeni örnek üretir |