Özet - Erişim belirteçleri
- TypeScript kursu
- Orta seviye
- Ders 10/89
- 4 dk
Belirteçlerle kapsüllenmiş bir kullanıcı sınıfı yazarsın.
Özet - Erişim belirteçleri
Bir User sınıfı, erişim belirteçlerini birleştirir: public name herkese açık, private password tamamen gizli, protected role alt sınıflara açık. Her alan kendi belirteciyle tanımlanır ve constructor'da this ile atanır.
class User {
public name: string;
private password: string;
protected role: string;
constructor(name: string, password: string, role: string) {
this.name = name;
this.password = password;
this.role = role;
}
checkPassword(pw: string): boolean {
return this.password === pw;
}
}
class Admin extends User {
getRole(): string {
return this.role;
}
}Uygulama Kapsüllenmiş User sınıfı yaz
User sınıfını tanımla: public name: string ve private password: string alanlarını açıkça bildir. constructor ile name ve password parametrelerini al ve this ile ata. checkPassword(pw: string): boolean metodu yaz: this.password === pw döndür. Yeni bir User("Ada", "s3cr3t") oluştur, checkPassword("s3cr3t") ve checkPassword("wrong") çağır.
Başlangıç kodu
// User sınıfı tanımla (public name, private password)
// constructor ile her ikisini al, this ile ata
// checkPassword(pw: string): boolean metodu yaz
// password === pw ise true döndür
// yeni User oluştur, checkPassword çağırÖrnek çözüm
class User {
public name: string;
private password: string;
constructor(name: string, password: string) {
this.name = name;
this.password = password;
}
checkPassword(pw: string): boolean {
return this.password === pw;
}
}
const u = new User("Ada", "s3cr3t");
console.log(u.checkPassword("s3cr3t"));
console.log(u.checkPassword("wrong"));Beklenen çıktı
true false
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir User sınıfında password alanı hangi belirteçle tanımlanmalıdır?
- public
- protected
- static
- private Doğru cevap
Açıklama: Şifre gibi hassas bilgiler private olmalıdır; yalnızca sınıf içinden erişilir. public herkese açık olurdu, protected alt sınıflara da açık olurdu; ikisi de güvensiz.
2 Şifre kontrolünü tamamla
checkPassword(pw: string): boolean {
return this.password ____ pw;
}
checkPassword(pw: string): boolean {
return this.password === pw;
}
Açıklama: Şifre karşılaştırması katı eşitlik ile yapılır: this.password === pw. == tür zorlama yapar (riskli), = atama yapar (boolean döndürmez), !== ise ters sonucu verir.
3 Kapsüllenmiş User parçaları
| Kavram | Anlamı |
|---|---|
public name |
Herkese açık isim |
private password |
Gizli şifre |
protected role |
Alt sınıfa açık rol |
extends User |
Alt sınıf tanımı |