CodeBlanks Logo Icon CodeBlanks

private alan

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

Main.java
// Account sınıfını tanımla
// private balance alanı ekle
// deposit ve getBalance metotlarını yaz

Örnek çözüm

Main.java
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

Soru
class Account {
    ____ double balance;
}
Cevap
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

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