Sınıf değişkenleri
- Java kursu
- Orta seviye
- Ders 33/116
- 4 dk
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
// Player sınıfını tanımla
// static total ve name alanları ekle
// yapıcıda sayacı artırÖrnek çözüm
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
class Player {
____ int total = 0;
String name;
}
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.