Bölüm 4 · Simülatör

Erişim Belirleyiciler ve Sarmalama

← Bölüm 4

Paketler ve sınıflarsınıfa ya da üyeye tıklayın

Erişen sınıf

    aynı sınıfaynı paketalt sınıf*başka paket

    * başka paketteki alt sınıf; protected yalnız kalıtımla: faiz ✓, h.faiz ✗

    Doğru 0 / 0

    Erişim Belirleyiciler ve Sarmalama

    Amaç: Bir alana ya da metoda hangi sınıftan erişilebileceğini derleyicinin nasıl denetlediğini görmek. banka paketinde Hesap ve Memur, uygulama paketinde Hesap'ın alt sınıfı VadeliHesap ve ilgisiz Musteri var.

    Nasıl kullanılır?

    1. Erişim denetimi: diyagramda erişen sınıfa ve Hesap'ın bir üyesine tıklayın (ya da üstteki listelerden seçin). Sağda erişen sınıfın kodu, derleyicinin kararı ve dört erişim düzeyinin tablosu görünür; tablo keşfettikçe dolar.
    2. Alt sınıfta (ve Hesap'ın kendisinde) iki biçim var: doğrudan (faiz, yani this.faiz) ya da başka bir nesne üzerinden (h.faiz).
    3. Sarmalama: bakiye private olduğu için Hesap nesnesi yalnızca kendi metotlarıyla değişir. Tutarı girip metotları deneyin; geçersiz tutarlar reddedilir, h.bakiye = m ise hiç derlenmez.
    4. Kendini dene: erişim görünümünde rastgele bir satırın derlenip derlenmeyeceğini, sarmalama görünümünde işlemden sonraki bakiyeyi tahmin edin.

    Dört erişim düzeyi

    BelirleyiciAynı sınıfAynı paketAlt sınıf (başka paket)Başka paket
    public✓✓✓✓
    protected✓✓✓*✗
    (yazılmazsa) paket erişimi✓✓✗✗
    private✓✗✗✗
    • * Başka paketteki alt sınıf, protected üyeye yalnızca kendi (ya da kendi alt türlerinin) nesneleri üzerinden erişir: faiz = 0.05; derlenir, h.faiz = 0.05; (h bir Hesap) derlenmez.
    • private sınıf düzeyindedir: Hesap içindeki kod, başka bir Hesap nesnesinin h.bakiye alanına da erişebilir.
    • private üyeler kalıtılmaz: VadeliHesap içinde gecerli(10) için derleyici cannot find symbol der.
    • Sarmalama: alanlar private, davranışlar public. Değer bir getter ile (getBakiye()) okunur; değişiklik yalnızca kuralı denetleyen metotlarla (yatir, cek) yapılır, böylece nesne hiçbir zaman geçersiz duruma (ör. eksi bakiye) düşmez.

    banka/Hesap.java

    Diyagramdaki her erişim birleşimi, dört sınıf birlikte javac --release 8 ile derlenerek doğrulanmıştır; gösterilen hata iletileri javac'ın gerçek iletileridir. Sarmalama görünümündeki işlemler aynı sınıfla çalıştırılan Java programlarıyla karşılaştırılmıştır.

    İlgili sunumlar: Bölüm 4 · Sarmalama (Erişim Belirleyiciler, Dört Erişim Düzeyi, Erişim Metotları, Paket Erişimi) ve Bölüm 4 · Kalıtım (protected Erişim Seviyesi).