private alan
- Java kursu
- Orta seviye
- Ders 24/116
- 4 dk
private ile alan gizlemeyi öğrenirsin.
private alan
Encapsulation, bir sınıfın alanlarını dışarıdan korumaktır. Alanları private yaparak doğrudan erişimi engellersin. Böylece veri yalnızca sınıfın kendi metotlarıyla değiştirilir; dışarıdan müdahale önlenir.
Örnek: class Account { private double balance; }. Burada balance alanı private'tir. Account a = new Account(); a.balance = 100; yazarsan derleme hatası alırsın; çünkü balance'a sınıf dışından erişilemez. Erişim için getter ve setter metotları yazılır; bunlar sonraki derslerde gelir. Encapsulation, veri bütünlüğünü korur.
Neden private?
Alanları private yapmak, veriyi denetim altında tutar. Dışarıdan istenmeyen değer atamasını engeller. Örneğin bir bakiye alanına negatif değer atanmasını önleyebilirsin.
Encapsulation olmadan a.balance = -50; yazılabilir ve hesap negatif bakiyeye düşer. private ile bunu engellersin; bakiye yalnızca bir setter metoduyla değiştirilir ve setter negatif değerleri reddeder. Bu, verinin her zaman geçerli kalmasını sağlar. Encapsulation, sınıfın iç tasarımını dışarıdan gizler; değişiklikler sınıf içinde yapılır, dışarıdaki kod etkilenmez.
Uygulama Account sınıfına private alan ekle
Account adında bir sınıf tanımla. İçine private double balance alanını ekle. Sınıf içine void deposit(double amount) metodu yaz; gövdesinde balance += amount; yaz. double getBalance() metodu ekle; balance döndürsün. main içinde bir Account örneği oluştur, deposit(100) çağır ve getBalance() sonucunu yazdır.
Başlangıç kodu
// Account sınıfını tanımla
// private balance alanı ekle
// deposit ve getBalance metotlarını yazÖrnek çözüm
class Account {
private double balance;
void deposit(double amount) {
balance += amount;
}
double getBalance() {
return balance;
}
public static void main(String[] args) {
Account a = new Account();
a.deposit(100);
System.out.println(a.getBalance());
}
}Beklenen çıktı
100.0
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 private double balance alanına sınıf dışından erişmek ne olur?
- Değer sıfırlanır
- Derleme hatası verilir Doğru cevap
- Değer atanır
- Sınıf silinir
Açıklama: private alanlara sınıf dışından erişilemez; derleme hatası verilir.
2 Alanı private yap
class Account {
____ double balance;
}
class Account {
private double balance;
}
Açıklama: balance alanı private yapıldı.
3 Erişim belirteçlerini eşle
| Kavram | Anlamı |
|---|---|
private |
Yalnızca sınıf içi |
public |
Her yerden |
protected |
Alt sınıflar |
(belirteç yok) |
Aynı paket |