Java Class Üyeleri ve Access Modifiers Nedir?
Bu yazıda, Java class üyeleri ve access modifiers yani erişim belirleyicilerini detaylı şekilde açıklıyoruz. Public, private, protected ve default erişim belirleyicilerin farklarını ve kullanımlarını örneklerle öğrenebilirsiniz.
1. Access Modifiers (Erişim Belirleyiciler) Nedir?
Java’da bir class veya class üyesinin (metot, değişken, constructor) başka sınıflardan erişilebilirliğini belirlemek için erişim belirleyiciler kullanılır:
- public – Her yerden erişilebilir.
- private – Sadece tanımlandığı class içinde erişilebilir.
- protected – Aynı paket içi ve farklı paketlerdeki alt classlardan erişilebilir.
- default – (Belirtilmezse otomatik) Sadece aynı paket içinden erişilebilir.
2. Public, Private, Protected, Default Karşılaştırması
Public
Her yerden erişilebilir. Sınıfın ve üyenin public olması gerekir.
public class Hayvan {
public void sesVer() {
System.out.println("Ses");
}
}
Private
Sadece tanımlandığı class içinde geçerlidir. Başka classlardan ve alt sınıflardan erişilemez.
public class Kitap {
private String isim;
}
Protected
Aynı paketteki tüm classlar ile farklı paketlerdeki alt classlar erişebilir. Farklı paketlerden sadece kalıtım yoluyla erişim mümkündür.
public class Demo {
protected int x = 9;
}
Default (Paket-Özel)
Hiçbir erişim belirleyici yazılmazsa varsayılan olur. Sadece aynı paket içinden erişim sağlanabilir.
class Deneme {
void oku() { }
}
3. Erişim Belirleyiciler ve Kalıtım
Java’da alt classlar (subclass) sadece public ve protected üyeleri miras alabilir. Private üyeler başka classlardan ve alt classlardan erişilemez.
public class Hayvan {
public String ses() { return "mö mö"; }
}
public class Inek extends Hayvan {
public void kullanHayvan() {
System.out.println(this.ses());
}
}
4. Protected ve Default Farkı
- Protected: Farklı paketlerden sadece kalıtım yoluyla ulaşılır.
- Default: Sadece aynı pakette erişim mümkündür, kalıtım olsa bile farklı paketten erişim yoktur.
5. Erişim Tablosu
| Erişim Belirleyici | Aynı Sınıf | Aynı Paket | Alt Sınıf (Farklı Paket) | Diğer Paketler |
|---|---|---|---|---|
| public | ✔ | ✔ | ✔ | ✔ |
| protected | ✔ | ✔ | ✔ | ✖ |
| default | ✔ | ✔ | ✖ | ✖ |
| private | ✔ | ✖ | ✖ | ✖ |
6. Sık Sorulan Sorular
- Private method override edilir mi? Hayır, override edilemez.
- Default metoda farklı paketten erişilebilir mi? Hayır, sadece aynı paket içinde erişim mümkündür.
- Protected üyeye farklı paketten nasıl erişilir? Sadece kalıtım (inheritance) ile ulaşılır.
Sonuç
Java’da class üyelerinin erişim belirleyicileri, kodun güvenli ve yönetilebilir olması için önemlidir. Doğru access modifier seçimi ile yazılımınızı daha esnek ve güvenli hale getirebilirsiniz. Daha fazla Java dersi ve programlama bilgisi için bizi takip edin!