CodeBlanks Logo Icon CodeBlanks

Static alanlar

C# kursu · Orta seviye · Ders 30/116

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.

Örnek çözümü göster
Counter sınıfına `public static int Count = 0;` ekle. Yapıcı içinde `Count++;` yaz. Main içinde iki `new Counter()` üret ve `Console.WriteLine(Counter.Count);` çağı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);
    }
}

Kendini test et

  1. Hangisi geçerli bir statik alan tanımıdır?

    • public int Count;
    • static Count;
    • public static int Count;
    • public static Count int;
    Cevabı göster

    public static int Count; — Doğru. `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;
    }
    Cevabı göster
    class Counter
    {
        public static int Count = 0;
    }
  3. Eşleştir: statik alan kavramları

    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