CodeBlanks Logo Icon CodeBlanks

static

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

static

Bir static alan örneklere değil, sınıfın kendisine aittir. Tüm örnekler aynı değeri paylaşır. static anahtar kelimesiyle yazılır ve sınıf adı üzerinden erişilir.

Örnek: class Counter { static int count = 0; Counter() { count++; } }. Burada count static'tir; her yeni örnek oluşturulduğunda Counter.count artar. Örnek üzerinden c.count yazımı da çalışır ama önerilmez; doğrusu sınıf adıdır. Static alanlar, sayaçlar, önbellekler ve yapılandırma değerleri için uygundur.

static metot

Metotlar da static olabilir. Bir static metot, örnek oluşturmadan sınıf adıyla çağrılır; örnek alanlarına erişemez, yalnızca static alanlara.

Örnek: class MathHelper { static int square(int n) => n * n; }. Burada square static'tir; MathHelper.square(5) biçiminde çağrılır, örnek gerekmez. MathHelper h = MathHelper(); yazıp h.square(5) demek yanlış değildir ama önerilmez. Static metotlar, yardımcı işlevler ve hesaplamalar için uygundur; Dart'ın Math.sqrt gibi fonksiyonları bu yapıdadır.

Uygulama Counter sınıfını static ile yaz

Counter adında bir sınıf tanımla. static int count = 0; alanını ekle. Counter() { count++; } yapıcısını yaz. main içinde var a = Counter(); ve var b = Counter(); ile iki örnek oluştur, sonra print(Counter.count) çağrısı yap.

Başlangıç kodu

main.dart
// Counter sınıfını tanımla
// static count alanı ve yapıcı ekle

void main() {
  // İki Counter örneği oluştur ve Counter.count yazdır
}

Örnek çözüm

main.dart
// Counter sınıfını tanımla
class Counter {
  static int count = 0;
  Counter() {
    count++;
  }
}

void main() {
  var a = Counter();
  var b = Counter();
  print(Counter.count);
}

Beklenen çıktı

2

Soru ve cevaplar

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

1 static anahtarını ekle

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

Açıklama: static alan sınıfa aittir; tüm örnekler paylaşır.

2 İki Counter örneği oluşturulduğunda Counter.count ne olur?

  • 0
  • 2 Doğru cevap
  • 1
  • Hata verir

Açıklama: Her yapıcı çağrısı count'u artırır; iki örnek için 2 olur.

3 static parçalarını eşle

Kavram Anlamı
static Anahtar kelime
Counter.count Sınıf üzerinden erişim
count++ Yapıcıda artırma

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