Accesseurs et mutateurs.
Un accesseur est une méthode qui va nous permettre d'accéder aux variables de nos objets en lecture.
Un mutateur nous permettra d'en faire de même en écriture.
--
Grâce aux accesseurs, vous pourrez afficher les variables de vos objets, et grâce aux mutateurs, vous pourrez les modifier :
Maintenant on peut ajouter ce code dans le main :
Lors du test vous devriez obtenir cela :
On en rajoute ...
Avec nos objets Ville, notre choix est un peu limité par le nombre de méthodes possibles, mais nous pouvons tout de même en faire une ou deux pour l'exemple :
Faire un système de catégories de villes par rapport à leur nombre d'habitants ( <1000 -> A, <10 000 -> B...).
Ceci est déterminé à la construction ou à la redéfinition du nombre d'habitants : ajoutons donc une variable d'instance de type char à notre classe et appelons-la categorie.
Pensez à ajouter le traitement aux bons endroits .
Faire une méthode de description de notre objet Ville .
Une méthode pour comparer deux objets par rapport à leur nombre d'habitants.
Remarque :
Nous voulons que la classe Ville gère la façon de déterminer la catégorie elle-même, et non que cette action puisse être opérée de l'extérieur.
La méthode qui fera ceci sera donc déclarée private.
Par contre, un problème va se poser ! Vous savez déjà qu'en Java, on appelle les méthodes d'un objet comme ceci : monString.subString(0,4);.
Cependant, vu qu'il va falloir qu'on travaille depuis l'intérieur de notre objet, vous allez encore avoir un mot clé à retenir...
Cette fois, il s'agit du mot clé this.
Voici tout d'abord le code de notre classe Ville en entier, c'est-à-dire comportant les méthodes dont on vient de parler :
Ne pas oublier la déclaration :
private char categorie;
Et l'appel en interne :
Définition :
Pour simplifier, this fait référence à l'objet courant !
Bien que la traduction anglaise exacte soit « ceci », il faut comprendre « moi ».
À l'intérieur d'un objet, ce mot clé permet de désigner une de ses variables ou une de ses méthodes.
Méthode : La méthode categorie().
Elle ne prend aucun paramètre, et ne renvoie rien : elle se contente de mettre la variable de classe categorie à jour.
Elle détermine dans quelle tranche se trouve la ville grâce au nombre d'habitants de l'objet appelant, obtenu au moyen du mot clé this.
Selon le nombre d'habitants, le caractère renvoyé changera.
Nous l'appelons lorsque nous construisons un objet Ville (que ce soit avec ou sans paramètre), mais aussi lorsque nous redéfinissons le nombre d'habitants : de cette manière, la catégorie est automatiquement mise à jour, sans qu'on ait besoin de faire appel à la méthode.
Méthode : La méthode decrisToi().
Celle-ci nous renvoie un objet de type String.
Elle fait référence aux variables qui composent l'objet appelant la méthode, toujours grâce à this, et nous renvoie donc une chaîne de caractères qui nous décrit l'objet en énumérant ses composants.
Méthode : La méthode comparer(Ville V1).
Elle prend une ville en paramètre, pour pouvoir comparer les variables nbreHabitants de l'objet appelant la méthode et de celui passé en paramètre pour nous dire quelle ville est la plus peuplée !
Et si nous faisions un petit test ?
Ville v = new Ville();
Ville v1 = new Ville("Marseille", 1236, "France");
Ville v2 = new Ville("Rio", 321654, "Brésil");
System.out.println("\n\n"+v1.decrisToi());
System.out.println(v.decrisToi());
System.out.println(v2.decrisToi()+"\n\n");
System.out.println(v1.comparer(v2));











