Dans le cours : Java pour les développeurs / développeuses Android

Intégrer la classe dans un projet

Dans cette vidéo, nous allons voir comment intégrer la classe EleveBean que nous avons réalisée dans la vidéo précédente et remplacer deux collections de String, une pour le nom et une pour le prénom, par une seule collection d'élèves. Ici, mon typage va changer. Ce n'est plus un typage de String, ça va être un typage d'EleveBean. Je vais mettre à jour mon nom de variable. La création de mes collections : je n'en ai plus qu'une seule. Ici, donc, je vais ajouter. Plutôt que d'ajouter le nom dans une collection et le prénom dans une autre collection, je vais créer un nouvel élève, lui stocker son nom, son prénom, et ajouter cet élève à mon ArrayList. Je crée mon pointeur, mon bout de papier. J'y mets un élève physique dedans, que je crée pour l'occasion. Pour accéder à ces attributs, on a vu que c'est le point. Ce n'est pas une méthode, donc il n'y a pas de parenthèses, c'est un attribut. « nom = nom ». Je duplique. La même chose pour le prénom. Pour qu'ils aient tous des prénoms différents, je vais même aller un peu plus loin, je vais lui rajouter, à son prénom, la taille de la liste, comme ça le dernier élément s’appellera « eleve » avec la taille de la liste. Donc ils auront tous un prénom différent. C'est juste pour un confort visuel, pour voir ce qui se passe. Ça, on n'en a plus besoin. Mais, par contre, il va falloir ajouter cet élève-là à notre collection. Je résume. J'ai créé un nouvel élève, j'ai stocké son adresse dans une variable, je lui ai donné un nom, un prénom, avec une variation pour qu'ils soient tous différents. Et cet élève, je l'ai ajouté à ma collection. J'ai fait ça autant de fois que la valeur qu'il y a dans « nb ». Continuons. Pour rafraîchir l'écran. Maintenant, nous n'avons plus qu'une seule collection à parcourir. Le forEach devient intéressant car tout à l'heure on était bloqué : il y avait deux collections à parcourir sauf qu'on avait besoin de parcourir les deux collections en parallèle. Je fais mon typage, « EleveBean », mon bout de papier pour stocker mes adresses, et ma collection que je parcours. « eleve » va ici prendre tour à tour l'adresse de chacun des élèves de ma collection. Je vais donc faire mon affichage, comme je faisais avant. Pour récupérer le nom : « eleve.nom ». Pour récupérer le prénom : « eleve.prenom ». J'ai parcouru tous mes élèves, et dans ma variable résultat j'ai mis « nom prenom \ n ». J'ai fait ça pour chaque élève. S'il n'y a pas d'élève dans ma liste, je ne passerai simplement pas là-dedans. Par contre, si ma liste est nulle, que j'ai oublié de la créer, ici, j'aurai un NullPointerException parce qu'il va me dire que je tente de parcourir une liste nulle. Par contre, je peux parcourir une liste vide, c'est-à-dire une liste dans laquelle il n'y a plus d'élèves. Il se contentera simplement de ne rien faire. Si je veux faire la même chose avec un for classique, ici, je mets « eleves.size » pour récupérer ma condition de sortie de boucle pour savoir combien d'élèves je parcours. Je vais créer un pointeur vers un élève, récupérer l'élève à la position « i » dans ma collection, « .get(i) ». Maintenant que j'ai mon élève, je vais pouvoir faire la même chose. Mes deux boucles font exactement le même rendu. Je vais donc en mettre une des deux en commentaire. Ça, nous n'en avons plus besoin. Dernier détail : pour la suppression. Ici, je vais mettre ma collection d'élèves. Si elle est vide, j'indique par un toast qu’elle est vide. Sinon, de la même manière, je vais lui appliquer « .remove » du dernier élément de sa liste. « -1 ». Je supprime donc l'élément qui est à la dernière position et je ne le fais qu'une fois, vu que je n'ai qu'une seule collection. Je peux donc tester. Ici, nous ne devrions voir aucune différence avec l'exécution précédente car ce que nous avons changé, ce n'est pas l'IHM, c'est juste la façon de traiter les données et de les transmettre à l'IHM. J'en ajoute trois : 0, 1, 2. J'en ajoute un, je supprime, je rajoute. J'en supprime trop, la liste est vide. Voilà, vous avez vu comment intégrer une classe et travailler avec un JavaBean plutôt qu'avec un ensemble de collections. Maintenant, si je veux faire évoluer, si je veux, par exemple, rajouter un troisième champ, élève ou enseignant, profession, âge, etc. Je n'ai plus qu'à compléter ma classe élève et à ajouter les éléments. Je n'ai pas besoin de tout révolutionner.

Table des matières