static
- Dart kursu
- Orta seviye
- Ders 22/116
- 5 dk
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
// 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
// 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
class Counter {
____ int count = 0;
Counter() {
count++;
}
}
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 |