Nous mettrons à jour notre Politique de confidentialité prochainement. En voici un aperçu.

Java pour les développeurs Android

Ajouter un constructeur

Testez gratuitement nos 1338 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
À l'aide d'un constructeur, assignez des valeurs aux variables définies dans votre classe Élèves. Vous aborderez également les règles des constructeurs.
06:42

Transcription

Dans cette vidéo, nous allons voir un nouvel outil sur la création de nos classes Java, à savoir le constructeur. Actuellement, vous utilisez déjà des constructeurs sans vous en rendre compte. Ici, quand je fais « new Random », j'appelle le constructeur de la classe « Random. » Ici, quand je fais « new Elève » j'appelle le constructeur de la classe Elève. En fait, le mot-clé qui va après le « new », c'est le constructeur. Par défaut, si vous ne mettez pas de constructeur dans votre classe, vous avez un constructeur qui ne fait rien, mais il est possible de créer notre propre constructeur. Donc, là actuellement notre classe Élève ne contient pas de constructeur. Il appelle le constructeur par défaut. Je vais créer mon propre constructeur. Il est public, mais il est possible de mettre un constructeur privé. On verra dans d'autres vidéos l'intérêt qui peut y avoir. Le constructeur a forcément le même nom que la classe. Il n'a pas de valeur de retour. Pourquoi il n'a pas de valeur de retour ? Tout simplement, parce qu'il retourne l'adresse mémoire où a été créé l'objet. Je vous rappelle ici, dans Élève, on va stocker une adresse mémoire. Je fais égal « new » de mon constructeur et il va stocker cette adresse mémoire. Donc, là c'est une méthode sans valeur de retour. Il n'y a que pour les constructeurs qu'on puisse faire ça. Voilà mon constructeur. Nous allons faire en sorte que lorsque nous construisions un nouvel élève, nous lui attribuions un nouvel âge aléatoirement. Donc, ce morceau de code-là, nous allons le mettre dans le constructeur et nous avons besoin de la classe « Random. » Ici « Eleve.setAge », nous sommes dans l’Élève, donc, on peut directement faire : âge égal. Ici, ma classe « Random », je peux la déclarer en attribut, en « private », je n'en ai pas besoin en l'occurence à l'extérieur pour le moment. En statique, il est inutile de créer une classe « Random » par élève, en final, on ne compte pas la modifier. Attention, petit détail, le mot-clé final pour un objet ne veut pas dire qu'on ne puisse pas modifier l'objet. Il veut simplement dire que notre pointeur pointera toujours vers le même objet. Je vais le faire dans « MainActivity », si ici, je sors mon élève. A chaque itération, ma variable Élève aura une adresse différente. Elle pointera vers différents élèves. Si je rajoute le mot-clé Final, Final indique qu'en fait, ma variable Élève pointera toujours vers le même élève. Là, ce n'est plus le cas puisqu'à chaque itération notre variable Élève va changer de cible. Mais le fait qu'un élève soit en final n'empêche pas d'appeler ses méthodes et de modifier ses attributs. Voilà, pour la réalisation de notre constructeur. Il est possible de mettre des paramètres à un constructeur. Donc, là je lui attribue un âge aléatoirement. Notre âge, nous pouvons aussi le passer en paramètre. Dans ce cas-là, je vais créer un deuxième constructeur, qui cette fois prendra un âge en paramètre. Comme on a fait le « Setter », on va pouvoir faire « this.âge=âge ». J'ai maintenant deux constructeurs : un premier qui ne prend pas de paramètre et qui attribue un âge aléatoire et un deuxième qui prend l'âge en paramètre et qui lui attribue. Côté « Activity », ici, j'ai deux choix : soit j'appelle le constructeur sans paramètres, soit je peux appeler le constructeur en lui transmettant un paramètre. Si j'appuie sur la touche Ctrl et que je clique, il m'amène vers le constructeur qui prend un paramètre. Si j'enlève le 12 que je clique, il m'amène vers le constructeur sans paramètres. Si je souhaite que mon âge ne puisse plus être modifié car là, actuellement, on lui attribue soit dans le premier constructeur, soit dans le deuxième, on passera soit dans l'un, soit dans l'autre, mais derrière, on souhaite que l'âge ne puisse plus être modifié. On va, donc, retirer son « Setter », maintenant, notre âge n'est accessible qu'en lecture. Une fois qu'il aura été créé, on ne pourra plus le modifier depuis l'extérieur de la classe Élève. Je peux même aller plus loin et déclarer mon âge en final. Final, c'est quand on n'assigne qu'une seule fois la variable, or, ici, je l'assigne deux fois. Mais le compilateur comprend que comme c'est deux constructeurs, on appellera soit le premier, soit le deuxième, mais jamais les deux en même temps. Donc, notre variable Age sera bien assigné qu'une seule fois. Si j'en enlève un des deux, ici, il me met une erreur. Il m'indique qu'il existe un chemin où la variable Age n'est pas initialisée, celui où je passe par ce constructeur-là. Autre outil : il est possible depuis un premier constructeur, d'appeler le deuxième constructeur. Seule contrainte, ça doit être la première instruction de ce nouveau constructeur. C'est-à-dire que je vais faire en sorte que le constructeur qui est ici appelle ce constructeur. Je vais utiliser le mot-clé « this », je vous rappelle « this », on l'a utilisé dans les « Setters » pour lever l'ambiguïté. En fait, « this » représente l'instance courante, c'est-à-dire qu'on ne peut pas ici écrire élève. quelque chose étant donné que l'élève c'est lui-même, vu qu'on est dans la classe Élève, donc, on va utiliser le mot-clé « this ». Avec « this. », ça revient ici quand je fais « élève. », j'ai exactement les mêmes choses. C'est-à-dire qu'ici le fait de faire « this. », je peux appeler toutes les méthodes, tous les attributs qui sont dans la classe Élèves. Et pour le constructeur, c'est un petit peu différent. On ne met pas le point, on met directement les acolades, et là j'ai accès à mes deux constructeurs. Alors, accès aux deux, non, car ici, je suis dans le constructeur sans paramètres, ici, je ne peux pas appeler le constructeur sans paramètres, sinon je bouclerais, je passerais mon temps à appeler le même constructeur. Et donc, je vais pouvoir transmettre mon âge... directement, comme je vous l'ai dit, l'instruction « this » pour appeler un autre constructeur, doit être la première de la ligne. Si on regarde l'ordre d'exécution, je vais arriver ici, je vais appeler ce constructeur-là, je vais exécuter cette instruction qui m'amène Ctrl clic à cette instruction avec un âge en paramètre aléatoire. Une fois que j'ai terminé ce constructeur-là, ça lui a terminé celui-là et j'arrive ici. Voilà, pour l'utilisation des constructeurs.

Java pour les développeurs Android

Prenez en main la syntaxe et les concepts de Java pour vos développements d’applications pour Android. Abordez les variables, les chaînes de caractères, les conditions, etc.

7h01 (65 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :24 avr. 2017

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !