Statik üyeler
- TypeScript kursu
- Orta seviye
- Ders 4/89
- 4 dk
static ile sınıf düzeyinde üyeleri öğrenirsin.
static nedir?
static ile tanımlanan üyeler örnek değil sınıf düzeyindedir. Yeni örnek oluşturmadan sınıf adı ile doğrudan erişilir. MathUtil.PI ve MathUtil.square(5) gibi.
class MathUtil {
static PI: number = 3.14;
static square(n: number): number {
return n * n;
}
}
console.log(MathUtil.PI);
console.log(MathUtil.square(5));Instance vs static
Örnek üyeleri new ile örnek oluşturduktan sonra erişilirken, static üyeler sınıf adıyla doğrudan erişilir. Bir örnek metodunun içinde static alana erişmek için sınıf adını kullanırsın.
class Counter {
static count: number = 0;
increment(): void {
Counter.count++;
}
}Uygulama Counter sınıfı yaz
Counter sınıfını tanımla. static count: number = 0 alanı ve static increment(): void metodu ekle (metot Counter.count'u bir artırsın). Counter.increment()'i iki kez çağır ve Counter.count'u yazdır.
Başlangıç kodu
// Counter sınıfı tanımla
// count alanı sınıf düzeyinde, başlangıç 0
// increment metodu sınıf düzeyinde, count'u artırır
// increment'i iki kez çağır, count'u yazdırÖrnek çözüm
class Counter {
static count: number = 0;
static increment(): void {
Counter.count++;
}
}
Counter.increment();
Counter.increment();
console.log(Counter.count);Beklenen çıktı
2
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 static bir üyeye nasıl erişilir?
- Önce new ile örnek oluştur
- Sınıf adı ile doğrudan Doğru cevap
- super. ile
- this. ile
Açıklama: static üyelere örnek oluşturmadan sınıf adı ile doğrudan erişilir: MathUtil.PI. this ve super örnek bağlamında kullanılır, new ise örnek oluşturur.
2 static anahtar kelimesini tamamla
class MathUtil {
____ PI: number = 3.14;
}
class MathUtil {
static PI: number = 3.14;
}
Açıklama: static, üyeyi sınıf düzeyine taşır. class yanlış bağlam, const sınıf gövdesinde geçersiz, public ise erişim belirtecidir (statik yapmaz).
3 Statik üye parçaları
| Kavram | Anlamı |
|---|---|
static |
Sınıf düzeyinde üye |
MathUtil.PI |
Statik alana erişim |
MathUtil.square(5) |
Statik metot çağrısı |
Counter.count |
Sınıf adı ile erişim |