Pakete görünür. Varsayılan. Değiştirici gerekmez.
Sadece sınıfa görünür ( özel ).
Dünyaya görünür ( halka açık ).
Pakete ve tüm alt sınıflara görünür ( korumalı ).
Değişkenler ve yöntemler çağrılan herhangi bir değiştirici olmadan bildirilebilir. Varsayılan örnekler:
String name = "john";
public int age(){
return age;
}
Özel erişim değiştirici - özel:
Özel olarak bildirilen yöntemlere, değişkenlere ve kuruculara yalnızca bildirilen sınıfın içinden erişilebilir. Özel erişim değiştirici en kısıtlayıcı erişim düzeyidir. Sınıf ve arayüzler özel olamaz.
Özel olarak bildirilen değişkenlere, sınıfta genel alıcı yöntemleri varsa sınıf dışında erişilebilir.
Özel değiştiriciyi kullanmak, bir nesnenin kendisini kapsadığı ve dış dünyadan verileri gizlediği ana yoldur.
Örnekler:
Public class Details{
private String name;
public void setName(String n){
this.name = n;
}
public String getName(){
return this.name;
}
}
Genel erişim değiştirici - genel:
Herkese açık olarak bildirilen bir sınıfa, yönteme, kurucuya, arabirime vb. Başka herhangi bir sınıftan erişilebilir. Bu nedenle, bir ortak sınıf içinde bildirilen alanlara, yöntemlere, bloklara Java evrenine ait herhangi bir sınıftan erişilebilir.
Ancak, erişmeye çalıştığımız genel sınıf farklı bir pakedeyse, genel sınıfın içe aktarılması gerekir.
Sınıf mirası nedeniyle, bir sınıfın tüm genel yöntemleri ve değişkenleri alt sınıfları tarafından miras alınır.
Misal:
public void cal(){
}
Korumalı erişim değiştirici - korumalı:
Bir üst sınıfta korunduğu bildirilen değişkenlere, yöntemlere ve kuruculara yalnızca başka bir paketteki alt sınıflar veya korumalı üye sınıfının paketi içindeki herhangi bir sınıf tarafından erişilebilir.
Korumalı erişim değiştirici, sınıfa ve arabirimlere uygulanamaz. Yöntemler, alanlar korumalı olarak ilan edilebilir, ancak bir arabirimdeki yöntemler ve alanlar korumalı olarak ilan edilemez.
Korumalı erişim, alt sınıfa yardımcı yöntem veya değişkeni kullanma şansı verirken, ilgisiz bir sınıfın bunu kullanmaya çalışmasını engeller.
class Van{
protected boolean speed(){
}
}
class Car{
boolean speed(){
}
}
private
paketteki diğer sınıflardan gizler.public
paketin dışındaki sınıflara maruz kalır. yalnızca alt sınıflarla sınırlıprotected
bir sürümüdürpublic
.