private
- TypeScript kursu
- Orta seviye
- Ders 7/89
- 4 dk
private ile sınıf içi üyeleri öğrenirsin.
private nedir?
private, bir üyenin yalnızca sınıfın kendi içinde erişilebilir olduğunu belirtir. Sınıf dışından erişmeye çalışırsan derleme hatası alırsın. Bu, kapsülleme (encapsulation) için temel araçtır.
class Account {
private balance: number;
constructor(balance: number) {
this.balance = balance;
}
getBalance(): number {
return this.balance;
}
}
const a = new Account(100);
// a.balance; // hata
console.log(a.getBalance());Encapsulation
private ile iç durumu gizlersin; dışarıdan yalnızca metotlar üzerinden erişilir. Bu, sınıfın içindeki tutarlılığı korur ve dış kodun doğrudan değişiklik yapmasını engeller.
class Account {
private balance: number = 0;
deposit(amount: number): void {
this.balance += amount;
}
}Uygulama private alanlı Account sınıfı
Account sınıfını tanımla: private balance: number alanı ile. constructor ile balance parametresini al ve this ile ata. getBalance(): number metodu yaz: this.balance döndür. Yeni bir Account(100) oluştur ve getBalance() çağır.
Başlangıç kodu
// Account sınıfı tanımla (gizli bakiye alanı)
// constructor ile balance al
// getBalance metodu bakiyeyi döndürür
// yeni Account oluştur, getBalance çağırÖrnek çözüm
class Account {
private balance: number;
constructor(balance: number) {
this.balance = balance;
}
getBalance(): number {
return this.balance;
}
}
const a = new Account(100);
console.log(a.getBalance());Beklenen çıktı
100
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 private bir alana sınıf dışından erişmeye çalışırsan ne olur?
- Çalışma anı hatası
- Undefined döner
- Derleme hatası Doğru cevap
- Çalışır
Açıklama: private alana sınıf dışından erişim derleme anında hata verir. Bu, kapsüllemeyi derleme zamanında zorlar; çalışma anına kadar beklenmez.
2 private belirtecini tamamla
class Account {
____ balance: number = 0;
}
class Account {
private balance: number = 0;
}
Açıklama: balance alanının yalnızca sınıf içinden erişilmesini istediğin için private yazmalısın. public dışarıya açar, protected alt sınıflara açar, static ise sınıf düzeyine taşır.
3 private parçaları
| Kavram | Anlamı |
|---|---|
private |
Yalnız sınıf içinden erişilir |
this.balance |
Sınıf içinden erişim |
a.balance |
Dışarıdan erişim (hata) |
getBalance() |
Public erişim metodu |