Problem

3/6

Modificateurs d'accès

Theory Click to read/hide

Modificateurs d'accès
Par défaut, tous les champset méthodes d'une classe en Java sont privés. Cela signifie que personne ne peut y accéder, ce qui signifie qu'en dehors des objets de cette classe, aucune méthode ne peut utiliser les champs et méthodes des objets de cette classe.

Les champs et les méthodes peuvent être rendus publics avec le modificateur d'accès public. Il existe également un modificateur private qui rend le champ privé. Il est facultatif car tous les champs et méthodes sont privés par défaut. Voici un exemple d'utilisation des modificateurs public  et private. livre de classe { nom de chaîne public ; Chaîne authorName ; privé int ageRequirement ; Stringtext ; public int pageCount ; int getTextLength() { retourner la longueur du texte(); } public int getAverageLetterCount() { retourne getTextLength() / pageCount ; } privé int getDifficuiltyLevel() { return 5 * ageRequirement * text.Length(); } }
Dans cette version de la classe Book , les champs name et pageCount sont rendus publics pour lecture et modification dans d'autres objets. La méthode getAverageLetterCount() peut également être appelée à partir d'objets d'autres classes. Tous les autres champs et méthodes restent privés et ne sont disponibles que dans les méthodes de cette classe. Dans la méthode publique getAverageLetterCount() nous pouvons appeler la méthode privée getTextLength() car getAverageLetterCount() appartient à la classe elle-même. Mais cela ne fonctionnera pas à partir d'une méthode d'une autre classe.

Mais pourquoi alors rendre les champs privés ? Dans le code Java, vous ne verrez principalement que des champs privés. Le fait est que si l'accès aux champs privés est effectué via les méthodes publiques de l'objet, alors avec un tel accès aux champs privés, il sera possible d'effectuer des actions et des vérifications supplémentaires. Vous en saurez plus dans la leçon sur l'encapsulation.

Problem

Rendez tous les champs de la classe Book privés. Supprimez toutes les méthodes dont il dispose actuellement.

Créez une méthode publique nommée setText (type de retour void) avec un argument newText qui changera la valeur de text à nouveauTexte. Ajoutez une méthode privée getWordsCount qui comptera le nombre de mots dans le texte et le renverra sous la forme int.
Le mot — une séquence de caractères quelconques, parmi lesquels il n'y a pas d'espace.

Il est garanti que plusieurs espaces d'affilée ne peuvent pas aller.