CodeBlanks Logo Icon CodeBlanks

Sınıf değişkenleri

Sınıf değişkenlerini paylaşmayı öğrenirsin.

Sınıf değişkenleri

Static alanlara sınıf değişkenleri (class variables) de denir. Çünkü sınıfa ait, tüm örnekler tarafından paylaşılan değişkenlerdir. Örnek değişkenleri (instance variables) her örneğe ayrı; sınıf değişkenleri ise tek.

Örnek: class Player { static int total = 0; String name; }. Burada total bir sınıf değişkenidir; tüm Player örnekleri aynı total'ı paylaşır. name ise örnek değişkenidir; her örneğin kendi name'i vardır. Player.total ile sınıf değişkenine, p.name ile örnek değişkenine erişilir. Sınıf değişkenleri sayaç, yapılandırma ve paylaşılan durum için kullanılır.

Örnek vs sınıf değişkeni

Örnek değişkeni her örneğe özeldir; sınıf değişkeni tüm örnekler tarafından paylaşılır. Örnek değişkeni new ile her örnek için yeniden oluşur; sınıf değişkeni sınıf yüklenirken bir kez oluşur.

Örnek: Player p1 = new Player(); Player p2 = new Player();. p1.name ve p2.name farklı değerler taşır; çünkü name örnek değişkenidir. Ama Player.total tek bir değerdir; p1 ve p2 aynı total'ı görür. Sınıf değişkeni değiştirince tüm örnekler etkilenir. Bu ayrım, verinin örnek düzeyinde mi sınıf düzeyinde mi paylaşıldığını belirler.

Uygulama Player sınıfına sınıf değişkeni ekle

Player adında bir sınıf tanımla. İçine static int total = 0 sınıf değişkenini ve String name örnek değişkenini ekle. Yapıcı yaz; name = n; ata ve total++ yap. main içinde iki Player örneği oluştur ve Player.total değerini yazdır.

Başlangıç kodu

Main.java
// Player sınıfını tanımla
// static total ve name alanları ekle
// yapıcıda sayacı artır

Örnek çözüm

Main.java
class Player {
    static int total = 0;
    String name;
    Player(String n) {
        name = n;
        total++;
    }
    public static void main(String[] args) {
        Player a = new Player("Ayşe");
        Player b = new Player("Mehmet");
        System.out.println(Player.total);
    }
}

Beklenen çıktı

2

Soru ve cevaplar

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

1 Sınıf değişkeni tanımını tamamla

Soru
class Player {
    ____ int total = 0;
    String name;
}
Cevap
class Player {
    static int total = 0;
    String name;
}

Açıklama: total bir sınıf değişkenidir.

2 Değişken türlerini eşle

Kavram Anlamı
static int total Sınıf değişkeni
String name Örnek değişkeni
Player.total Sınıf adıyla erişim
p1.name Örnek üzerinden erişim

3 static int total alanı kaç kopya oluşturur?

  • Her örnek için bir kopya
  • Hiç kopya oluşturmaz
  • Sınıf için tek kopya Doğru cevap
  • Metot başına bir kopya

Açıklama: Sınıf için tek kopya — static alan tüm örnekler tarafından paylaşılır.

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