CodeBlanks Logo Icon CodeBlanks

Paket görünürlüğü

Paket düzeyinde görünürlüğü öğrenirsin.

Paket görünürlüğü

Bir alana veya metoda erişim belirteci yazmazsan paket görünürlüğü (package-private) uygulanır. Bu üyeye aynı paketteki sınıflar erişebilir; farklı paketten erişilemez. private kadar katı değildir, public kadar açık değildir.

Örnek: class Config { String version; }. Burada version alanına belirteç yazılmamıştır; paket görünürlüğü taşır. Aynı paketteki başka bir sınıf config.version yazarak erişebilir. Farklı paketten erişilmeye çalışılırsa derleme hatası verilir. Paket görünürlüğü, aynı paket içindeki sınıfların yakın çalışmasını sağlar; dış paketlerden gizler.

Paket görünürlüğü ne zaman?

Paket görünürlüğü, aynı paketteki sınıfların birbirine yakın çalıştığı durumlarda kullanışlıdır. Test sınıfları, yardımcı sınıflar veya iç modüller arasında paylaşılan üyeler için uygundur. Dış paketlerden erişimi engeller ama paket içine serbesttir.

Örnek: Bir report paketinde ReportBuilder ve ReportData sınıfları olsun. ReportData'nın alanları paket görünürlüğündeyse ReportBuilder bunlara doğrudan erişebilir. report paketi dışındaki bir sınıf erişemez. Bu, paket içi serbestlik ve dışarıya gizlilik dengesi sağlar. private çok katı, public çok açık olduğunda paket görünürlüğü iyi bir orta yoldur.

Uygulama Config sınıfını paket görünürlüğüyle tanımla

Config adında bir sınıf tanımla. İçine String version alanını ekle (belirteç yazma). public String toString() metodunu ekle; "Sürüm: " + version döndürsün. main içinde bir Config örneği oluştur, version alanına değer ata ve örneği println ile yazdır.

Başlangıç kodu

Main.java
// Config sınıfını tanımla
// version alanını paket görünürlüğünde ekle
// toString ve main ekle

Örnek çözüm

Main.java
class Config {
    String version;
    public String toString() {
        return "Sürüm: " + version;
    }
    public static void main(String[] args) {
        Config c = new Config();
        c.version = "1.0";
        System.out.println(c);
    }
}

Beklenen çıktı

Sürüm: 1.0

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Paket görünürlüğü alanını tamamla

Soru
class Config {
    ____ version;
}
Cevap
class Config {
    String version;
}

Açıklama: Belirteç olmadan alan paket görünürlüğünde olur.

2 Erişim düzeylerini eşle

Kavram Anlamı
private Yalnızca sınıf içi
(belirteç yok) Aynı paket
protected Alt sınıflar + paket
public Her yerden

3 Bir alana belirteç yazılmazsa ne olur?

  • private olur
  • protected olur
  • Paket görünürlüğü olur Doğru cevap
  • public olur

Açıklama: Paket görünürlüğü olur — aynı paketten erişilir.

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