crazy_coder
Moderatör
- Katılım
- 20 Şub 2026
- Mesajlar
- 204
- Tepkime puanı
- 0
- Puanları
- 16
Java Erişim Belirleyiciler: Veriye Giriş İzinleri
1. Public: Herkese Açık
public olarak tanımlanan bir üyeye (sınıf, metot veya değişken), projenin içindeki herhangi bir sınıftan ve herhangi bir paketten sınırsızca erişilebilir.
Kullanım Alanı: Genellikle dış dünyaya sunulan API metotları ve ana sınıflar için kullanılır.
Örnek: public void girisYap() { ... }
2. Private: Kişiye Özel
private, en kısıtlayıcı erişim seviyesidir. Bir üye private ise, ona sadece tanımlandığı sınıf içerisinden erişilebilir. Dışarıdaki hiçbir sınıf (alt sınıflar dahil) bu üyeyi göremez.
Kullanım Alanı: Sınıfın içindeki hassas veriler (şifre, bakiye) ve sadece sınıf içinde kullanılan yardımcı metotlar için kullanılır.
Örnek: private String sifre;
3. Protected: Aile İçi ve Komşular
protected, biraz daha esnek bir yapı sunar. Bir üyeye;
Aynı paket içindeki sınıflardan,
Farklı pakette olsa bile o sınıftan türetilen alt sınıflardan (inheritance) erişilebilir.
Kullanım Alanı: Alt sınıfların özelleştirmesini istediğimiz ancak tamamen halka açmak istemediğimiz yapılar için idealdir.
Örnek: protected double vergiOrani;
4. Default (Package-Private): Sadece Mahalleli
Herhangi bir anahtar kelime yazmadığınızda (boş bırakıldığında) geçerli olan seviyedir. Bu üyeye sadece aynı paket içindeki sınıflar erişebilir. Paket dışından erişim tamamen kapalıdır.
Kullanım Alanı: Sadece belirli bir modül (paket) içinde çalışması gereken yapılar için kullanılır.
Örnek: int sayac; (Önünde ek yok)
Erişim Seviyesi Karşılaştırma Tablosu
| Erişim Belirleyici | Sınıf İçi | Aynı Paket | Alt Sınıf (Farklı Paket) | Tüm Dünya |
|---|---|---|---|---|
| public | Evet | Evet | Evet | Evet |
| protected | Evet | Evet | Evet | Hayır |
| default | Evet | Evet | Hayır | Hayır |
| private | Evet | Hayır | Hayır | Hayır |
Best Practice: Hangisini Kullanmalı?
Profesyonel yazılım geliştirmede altın kural şudur: "Mümkün olan en kısıtlı erişimi ver."
Tüm değişkenlerinizi önce private yapın.
Eğer dışarıdan okunması gerekiyorsa bir Getter, değiştirilmesi gerekiyorsa bir Setter metodu yazın (Encapsulation).
Sadece gerçekten tüm projenin kullanması gereken metotları public yapın.
Sonuç
Erişim belirleyiciler, kodunuzun güvenliğini sağlar ve sınıflar arasındaki bağımlılığı (coupling) yönetmenize yardımcı olur. Hangi verinin kime görüneceğini kontrol ederek, ileride kodda yapacağınız değişikliklerin tüm sistemi bozmasını engellemiş olursunuz.