static alan
- Java kursu
- Orta seviye
- Ders 30/116
- 5 dk
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
// 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
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
class Counter {
____ int count = 0;
}
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 |