CodeBlanks Logo Icon CodeBlanks

static alan

static alan ile sınıf düzeyi durumu öğrenirsin.

static alan

Bir static alan, sınıfa aittir; örneklere değil. Tüm örnekler aynı static alanı paylaşır. Bir örnek değeri değiştirdiğinde diğerleri de görür. static anahtar kelimesi ile bildirilir.

Örnek: class Counter { static int count = 0; }. Burada count static'tir. İki Counter örneği oluştursan da tek bir count vardır. Counter.count ile sınıf adından erişilir; örnek üzerinden de erilebilir ama önerilmez. Static alanlar sınıf yüklendiğinde hazırlanır; örnek oluşturulmadan önce vardır. Bu, paylaşılan sayaç ve yapılandırma değerleri için kullanışlıdır.

Sınıf adıyla erişim

Static alanlara örnek üzerinden değil, sınıf adıyla erişilir. Bu, alanın sınıfa ait olduğunu açıkça gösterir. SinifAdi.alan biçimi tercih edilir.

Örnek: Counter.count yazarak count static alanına erişirsin. new Counter().count da çalışır ama önerilmez; çünkü static alan örneğe değil sınıfa aittir. Sınıf adıyla erişim kodun niyetini netleştirir. Java'da Math.PI, Integer.MAX_VALUE gibi static alanlar sınıf adıyla çağrılır. Bu, static üyelerin standart kullanımıdır.

Uygulama Counter sınıfına static alan ekle

Counter adında bir sınıf tanımla. İçine static int count = 0 alanını ekle. void increment() metodu yaz; gövdesinde count++ yaz. main içinde iki Counter örneği oluştur, her ikisinde de increment çağır ve Counter.count değerini yazdır.

Başlangıç kodu

Main.java
// Counter sınıfını tanımla
// static count alanı ve increment metodu ekle
// main içinde iki örnekle çağır ve yazdır

Örnek çözüm

Main.java
class Counter {
    static int count = 0;
    void increment() {
        count++;
    }
    public static void main(String[] args) {
        Counter a = new Counter();
        Counter b = new Counter();
        a.increment();
        b.increment();
        System.out.println(Counter.count);
    }
}

Beklenen çıktı

2

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 İki örnek aynı static alanı değiştirirse ne olur?

  • İkisi ayrı değer taşır
  • İkisi aynı değeri görür Doğru cevap
  • Derleme hatası verir
  • Static alan silinir

Açıklama: Static alan paylaşılır; iki örnek aynı değeri görür.

2 static alan tanımını tamamla

Soru
class Counter {
    ____ int count = 0;
}
Cevap
class Counter {
    static int count = 0;
}

Açıklama: static alan sınıfa aittir.

3 static alan bölümlerini eşle

Kavram Anlamı
static Anahtar kelime
int count Alan bildirimi
Counter.count Sınıf adıyla erişim
paylaşılan Özellik

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