Problem

3/6

Erişim Değiştiriciler

Theory Click to read/hide

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.

Problem

Kitap sınıfının tüm alanlarını özel yapın. Şu anda sahip olduğu tüm yöntemleri kaldırın.

metin değerini değiştirecek bir newText bağımsız değişkeniyle setText (dönüş türü void) adlı bir genel yöntem oluşturun. yeniMetin'e. Metindeki kelime sayısını sayacak ve onu int olarak döndürecek özel bir getWordsCount yöntemi ekleyin.
— aralarında boşluk olmayan herhangi bir karakter dizisi.

Arka arkaya birkaç boşluğun gidemeyeceği garanti edilir.