Özet - Sınıflar
extends, super ve static ile bir geometrik şekil sınıf hiyerarşisi yazarsın.
Özet - Sınıflar
Bu grupta sınıfların temellerini öğrendin:
classile şablon tanımlarsın.constructoryeni örneği başlatır;newile örnek üretirsin.- Yöntemler
thisüzerinden örneğe erişir. extendsile alt sınıf,super()ile üst yapıcı çağrılır.staticüyeler sınıfa aittir.
Şimdi bunları bir araya getiren bir hiyerarşi yazalım.
Uygulama Şekil hiyerarşisi
Bir Shape temel sınıfı tanımla; area() yöntemi 0 döndürsün. Sonra Circle alt sınıfını extends ile tanımla: yapıcısı radius alıp super() çağırsın ve this.radius atansın; area() yöntemi Math.PI * this.radius * this.radius döndürsün.
Örnek çözümü göster
Önce Shape ve area(), sonra Circle extends Shape içinde super() ve this.radius ata.
Örnek çözüm:
class Shape {
area() {
return 0;
}
}
class Circle extends Shape {
constructor(radius) {
super();
this.radius = radius;
}
area() {
return Math.PI * this.radius * this.radius;
}
}
Statik üyeleri hatırla
Statik üyeler örneklerden bağımsızdır; sınıf adıyla çağrılır. Bir sınıf tüm örneklerin sayısını tutmak, genel sabitler saklamak veya yardımcı yöntemler sağlamak için statik üyeler kullanır.
Son görevde statik bir sayaç ve statik bir tanım yöntemi ekleyeceğiz; böylece sınıf düzeyindeki veriyi örneklerle birlikte görmüş olacaksın.
Uygulama Logger sınıfı
Bir Logger sınıfı tanımla. static count özelliği 0 olsun. Yapıcısı parametre almasın ve her çağrıda Logger.count değerini bir artırsın. static describe() yöntemi bir metin döndürsün.
Örnek çözümü göster
static count = 0 ile başla, yapıcıda Logger.count++ yap, en son static describe() ekle.
Örnek çözüm:
class Logger {
static count = 0;
constructor() {
Logger.count++;
}
static describe() {
return "Logger instance";
}
}
Kendini test et
-
Bir sınıfa ait üye tanımlamak için hangi anahtar kelime kullanılır?
- static
- instance
- private
- const
Cevabı göster
static — Doğru! static üyeler sınıfa ait olur.
-
Kavramları eşleştir
- class
- sınıf bildirimi
- constructor
- yapıcı yöntem
- extends
- alt sınıf
- super()
- üst yapıcı çağrısı
- static
- sınıfa ait üye