Paket görünürlüğü
- Java kursu
- Orta seviye
- Ders 27/116
- 4 dk
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
// Config sınıfını tanımla
// version alanını paket görünürlüğünde ekle
// toString ve main ekleÖrnek çözüm
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
class Config {
____ version;
}
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.