Metotlar
- TypeScript kursu
- Orta seviye
- Ders 3/89
- 4 dk
Sınıflara metot eklemeyi öğrenirsin.
Sınıf metotları
Sınıflara metot ekleyerek davranış tanımlarsın. Metot, sınıf gövdesinde fonksiyon gibi yazılır ve this ile örneğin alanlarına erişebilir. Örnek üzerinde nokta ile çağrılır.
class Greeter {
name: string;
constructor(name: string) {
this.name = name;
}
greet(): string {
return "Merhaba, " + this.name;
}
}
const g = new Greeter("Ada");
console.log(g.greet());Metot çağırma
Metotlar örnek üzerinde nokta ile çağrılır: g.greet(). Metot içinde this, çağrıldığı örneği ifade eder. Bu yüzden g.greet() çağrıldığında this.name g'nin name alanı olur.
const g = new Greeter("Ada");
console.log(g.greet()); // "Merhaba, Ada"Uygulama Rectangle sınıfı ve area metodu
Rectangle sınıfını tanımla: width: number ve height: number alanları ile. constructor ile her iki parametreyi al. area(): number metodu yaz: this.width * this.height döndür. Yeni bir Rectangle(4, 5) oluştur, area() çağır ve sonucu yazdır.
Başlangıç kodu
// Rectangle sınıfı tanımla (genişlik ve yükseklik)
// constructor ile her iki alanı al
// alan hesaplayan metot yaz (width * height)
// yeni Rectangle oluştur, çağır ve yazdırÖrnek çözüm
class Rectangle {
width: number;
height: number;
constructor(width: number, height: number) {
this.width = width;
this.height = height;
}
area(): number {
return this.width * this.height;
}
}
const r = new Rectangle(4, 5);
console.log(r.area());Beklenen çıktı
20
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir sınıf metodında this neyi ifade eder?
- Global nesneyi
- Sınıfın kendisini
- Üst sınıfı
- Çağrılan örneği (instance) Doğru cevap
Açıklama: this, metodun çağrıldığı örneği (instance) ifade eder. this.name ile o örneğin name alanına erişirsin. Sınıfın kendisi veya üst sınıf değil.
2 Metot dönüşünü tamamla
greet(): string {
return "Merhaba, " + ____;
}
greet(): string {
return "Merhaba, " + this.name;
}
Açıklama: Metot içinde örneğin name alanına this.name ile erişirsin. name tanımlı değil, this nesnenin kendisini verir, Greeter.name ise statik erişimdir (yok).
3 Metot parçaları
| Kavram | Anlamı |
|---|---|
greet() |
Metot tanımı |
this.name |
Örneğin alanına erişim |
g.greet() |
Metot çağrısı |
: string |
Return türü |