Access Modifiers: Public, Private, Protected ve Default Erişim Belirleyiciler

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 BelirleyiciSınıf İçiAynı PaketAlt Sınıf (Farklı Paket)Tüm Dünya
publicEvetEvetEvetEvet
protectedEvetEvetEvetHayır
defaultEvetEvetHayırHayır
privateEvetHayırHayırHayı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.
 
Geri
Üst