CodeBlanks Logo Icon CodeBlanks

Metotlar

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

index.ts
// 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

index.ts
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

Soru
greet(): string {
    return "Merhaba, " + ____;
  }
Cevap
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ü

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