Ana içeriğe geç
Modül 4 · Ders 1 ders 2Kurstaki 7/14~15 min
Modül dersleri (1/2)

Sınıflar ve Değiştiriciler

TypeScript, standart ES6 sınıflarını statik yazma, erişim değiştiriciler ve kısayol parametre özellikleri gibi güçlü Nesneye Dayalı Programlama (OOP) özellikleriyle genişletir.

Sınıflar ve Erişim Değiştiriciler

TypeScript'te üç ana anahtar kelimeyi kullanarak sınıf üyelerinin, özelliklerin ve yöntemlerin görünürlüğünü denetleyebilirsiniz:

  • public (varsayılan): üyeye her yerden erişilebilir.
  • private: üyeye yalnızca onu tanımlayan sınıf içinden erişilebilir.
  • protected: üyeye sınıf ve onun alt sınıfları (kalıtım) içinden erişilebilir.
TS
class Animal {
  public name: string;
  private age: number;

  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }

  public getAge(): number {
    return this.age;
  }
}

Parametre Özellikleri

TypeScript, bir sınıf üyesini doğrudan yapıcıda bildirmek ve başlatmak için kısa bir sözdizimi sunar. Bir yapıcı parametresinin önüne bir erişim değiştirici eklendiğinde, özellik otomatik olarak oluşturulur ve atanır:

TS
// This syntax does exactly the same as the previous example!
class Animal {
  constructor(
    public name: string,
    private age: number,
  ) {}
}

Arayüzlerin Uygulanması

Bir sınıf, implements anahtar sözcüğünü kullanarak bir veya daha fazla arabirim uygulayabilir. Bu, gerekli tüm yöntemleri ve özellikleri tanımlayarak sınıfın belirli bir sözleşmeye bağlı kalmasını sağlar:

TS
interface Flyable {
  fly(altitude: number): void;
}

class Bird implements Flyable {
  constructor(public name: string) {}

  fly(altitude: number): void {
    console.log(`${this.name} is flying at ${altitude} meters.`);
  }
}

Miras ve super

TypeScript, sınıf mirasını tam olarak destekler. Bir sınıf, extends anahtar sözcüğünü kullanarak başka bir sınıfı genişletebilir. Alt sınıf bir yapıcı tanımlıyorsa, this'ye erişmeden önce super() işlevini kullanarak temel sınıf yapıcısını çağırmalıdır:

TS
class Person {
  constructor(public name: string) {}
}

class Student extends Person {
  constructor(
    name: string,
    public grade: number,
  ) {
    super(name); // Calls the Person constructor
  }
}

Kendin dene

Alıştırma 1: Araba Sınıfı ve Özel Değiştirici

Egzersiz#ts.m4.l1.e1
Denemeler: 0Yükleniyor…

Araba adında bir sınıf bildirin. Yapıcıda tanımlanmış salt okunur bir model özelliğine (dize), 0 olarak başlatılan özel bir kilometre özelliğine (sayı), kilometreyi mil kat artıran bir genel yöntem Drive(miles: number): void'e ve kilometreyi döndüren bir getter veya yöntem getMileage(): numarasına sahip olmalıdır.

Düzenleyici yükleniyor…
İpucu göster

Özel kilometre kullanın: sayı = 0; değişkeni özel yapmak ve kısayol olarak yapıcı(genel salt okunur model: string) {} yapmak için.

3 denemeden sonra çözüm mevcut

Alıştırma 2: Şekil Arayüzü ve Çember Sınıfı

Egzersiz#ts.m4.l1.e2
Denemeler: 0Yükleniyor…

Shape arayüzünü uygulayan Circle sınıfını uygulayarak kodu tamamlayın. Sınıfın yapıcı aracılığıyla ayarlanmış salt okunur bir radius özelliğine (sayı) sahip olması ve getArea(): number (Math.PI * radius * radius değerini döndüren) uygulamasını yapması gerekir.

Düzenleyici yükleniyor…
İpucu göster

Circle sınıfında uygulamalı Shape'i kullanın ve getArea(): number yöntemini tanımlayın.

3 denemeden sonra çözüm mevcut

Alıştırma 3: Soyut Araç Sınıfı ve Motosiklet Alt Sınıfı

Egzersiz#ts.m4.l1.e3
Denemeler: 0Yükleniyor…

Soyut sınıf Araç'ı genişleten Motosiklet adında bir sınıf bildirin. 'Motorcycle' dizesini ve ardından make (this.make) ve 'start' ifadesini döndürmek için start() yöntemini uygulamalıdır.

Düzenleyici yükleniyor…
İpucu göster

Motorcycle extends Araç sınıfını kullanın ve doğru dizeyi döndüren start(): string yöntemini uygulayın.

3 denemeden sonra çözüm mevcut

Alıştırma 4: Parametre Özellikleri ve Kalıtım

Egzersiz#ts.m4.l1.e4
Denemeler: 0Yükleniyor…

Yapıcı kısayolunu kullanarak salt okunur bir özellik kimliğini (sayı) ve ortak özellik adını (dize) tanımlayan Çalışan adında bir sınıf oluşturun. Ardından, Employee'i genişleten ve yapıcı aracılığıyla bir kamu mülkiyeti departmanı (dize) ekleyen bir Geliştirici sınıfı oluşturun.

Düzenleyici yükleniyor…
İpucu göster

Geliştirici yapıcısında super(id, name) öğesini kullanın ve özelliği yapıcı aracılığıyla tanımlamak için kamu departmanını kullanın.

3 denemeden sonra çözüm mevcut