Problem

3/6

Modificatori di accesso

Theory Click to read/hide

Modificatori di accesso
Per impostazione predefinita, tutti i campi e i metodi di una classe in Java sono privati. Ciò significa che nessuno può accedervi, il che significa che al di fuori degli oggetti di questa classe, nessun metodo può utilizzare i campi e i metodi degli oggetti di questa classe.

Campi e metodi possono essere resi pubblici con il modificatore di accesso public. C'è anche un modificatore private che rende privato il campo. È facoltativo in quanto tutti i campi e i metodi sono privati ​​per impostazione predefinita. Ecco un esempio di utilizzo dei modificatori public  e private. libro di classe { public Stringname; String nomeautore; private int ageRequirement; Stringtext; public int pageCount; int getTextLength() { restituisce la lunghezza del testo(); } public int getMediaLetterCount() { return getTextLength() / pageCount; } private int getDifficuiltyLevel() { return 5 * ageRequirement * text.Length(); } }
In questa versione della classe Book , i campi name e pageCount sono resi pubblici per la lettura e la modifica in altri oggetti. Il metodo getAverageLetterCount() è anche disponibile per essere chiamato da oggetti di altre classi. Tutti gli altri campi e metodi rimangono privati ​​e sono disponibili solo nei metodi di questa classe. Nel metodo pubblico getAverageLetterCount() possiamo chiamare il metodo privato getTextLength() perché getAverageLetterCount() appartiene alla classe stessa. Ma non funzionerà da un metodo di un'altra classe.

Ma perché allora rendere privati ​​i campi? Nel codice Java, vedrai principalmente solo campi privati. Il fatto è che se l'accesso ai campi privati ​​​​viene effettuato tramite i metodi pubblici dell'oggetto, allora con qualsiasi accesso di questo tipo ai campi privati ​​​​sarà possibile eseguire ulteriori azioni e controlli. Maggiori informazioni su questo saranno nella lezione sull'incapsulamento.

Problem

Rendi privati ​​tutti i campi della classe Book . Rimuovi tutti i metodi che ha attualmente.

Crea un metodo pubblico denominato setText (tipo restituito void) con un argomento newText che cambierà il valore di text a newText. Aggiungi un metodo privato getWordsCount che conterà il numero di parole nel testo e lo restituirà come int.
La parola — una sequenza di qualsiasi carattere, tra i quali non c'è spazio.

È garantito che non possono andare più spazi di fila.