CodeBlanks Logo Icon CodeBlanks

Static alanlar

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

Program.cs
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

Program.cs
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ı

Soru
class Counter
{
    public ____ = 0;
}
Cevap
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

Orta seviye bölümündeki tüm dersler