Erişim değiştiricileri
Varsayılan olarak, Java'daki bir sınıfın tüm
alanları ve
yöntemleri özel'dir. Bu, hiç kimsenin onlara erişemeyeceği anlamına gelir, yani bu sınıfın nesneleri dışında hiçbir yöntem, bu sınıfın nesnelerinin alanlarını ve yöntemlerini kullanamaz.
Alanlar ve yöntemler,
erişim değiştiricisi public
ile herkese açık hale getirilebilir. Alanı özel yapan bir
private
değiştiricisi de vardır. Tüm alanlar ve yöntemler varsayılan olarak özel olduğundan isteğe bağlıdır. İşte
public
ve
private
değiştiricilerinin kullanımına bir örnek.
sınıfKitabı
{
genel Dizgi adı;
Dize yazarıAdı;
özel int yaş Gereksinimi;
Dize metni;
genel int sayfa sayısı;
int getTextLength()
{
dönüş metni uzunluğu();
}
genel int getAverageLetterCount()
{
getTextLength() / pageCount'u döndürür;
}
özel int getDifficuiltyLevel()
{
dönüş 5 * yaşGereksinimi * metin.Length();
}
}
Kitap
sınıfının bu versiyonunda, name
ve pageCount
alanları diğer nesnelerde okuma ve değiştirme için herkese açık hale getirildi. getAverageLetterCount()
yöntemi, diğer sınıfların nesnelerinden de çağrılabilir. Diğer tüm alanlar ve yöntemler özel kalır ve yalnızca bu sınıfın yöntemlerinde bulunur. getAverageLetterCount()
genel yönteminde, getTextLength()
özel yöntemini çağırabiliriz çünkü getAverageLetterCount()
sınıfın kendisine aittir. Ancak başka bir sınıfın yönteminden çalışmaz.
Peki o zaman neden alanları özel yapalım? Java kodunda çoğunlukla yalnızca özel alanları göreceksiniz. Gerçek şu ki, özel alanlara erişim nesnenin genel yöntemleri aracılığıyla gerçekleştirilirse, özel alanlara bu tür bir erişimle ek eylemler ve kontroller yapmak mümkün olacaktır. Bununla ilgili daha fazla bilgi kapsülleme ile ilgili derste olacak.