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

Java pour les développeurs Android

S'initier à la classe Object

Testez gratuitement nos 1336 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Découvrez la classe Object, dont toute autre classe hérite. Initiez-vous à ses méthodes et à la réécriture des méthodes toString et equals.
07:09

Transcription

Dans cette vidéo, je vais vous présenter la classe objet. Jusqu'à présent, je vous ai parlé d'objets sans jamais vous présenter cette classe. Commençons avec « élève ». « Élève » hérite de personne. Si je vais sur « Personne », « personne » n'hérite de rien. C'est faux, toute classe hérite d'objets, sauf si elle hérite d'autre chose. C'est le principe de l'héritage, on ne peut hériter que d'une seule classe. Si on n'hérite de rien, cela revient à hériter d'objets. Donc, ça revient à écrire ceci. Ne rien écrire revient à écrire ceci. Je vais dans la classe objet et je peux la visiter, il se passe plein de choses. Dans la classe objet, il y a tout un tas de méthodes. Je vais vous en présenter deux : la première est la méthode « to string ». Pour expliquer la méthode « to string », je vais créer un élève et je vais l'afficher dans ma console. Ici, il m'indique que c'est un élève et non un « string », je vais faire comme pour les entiers et faire une auto-correction en « string. » J'obtiens ceci. Ici, j'ai le nom de ma classe, avec son package. Et ici, j'ai des chiffres qui représentent le HCode de mon objet. Qu'est-ce qu'il se passe quand on fait une auto-conversion en « string » d'un objet ? Cela revient à appeler la méthode « to string ». Cette méthode, ce n'est pas nous qui l'avons écrite. Elle appartient à la classe objet, si je clique, j’atterris sur cette classe. Que fait la méthode « to string » ? Elle écrit le nom du package avec le nom de la classe, « @ » et le HCode. Le HCode revient à prendre tous les composants de ma classe, à appliquer un algorithme pour donner un chiffre où il y a très peu de chance, mais il y a une chance, qu'il soit identique entre deux objets. Cela permet de faire une comparaison plus rapide entre deux objets. Maintenant, ma méthode « to string » est écrite dans ma classe objet. Rien ne m'empêche de réécrire cette méthode « to string », elle n'est pas déclarée finale. Donc, dans ma classe Personne, on pourrait commencer à écrire : « to string », il me la propose, je surcharge la méthode « to string » et après, à moi d'écrire tout et n'importe quoi dedans. En l'occurrence, on va écrire la méthode Afficher. On va renvoyer le contenu de la méthode Afficher. Je relance mon projet, et du coup, il m'écrit le contenu de la méthode Afficher. Donc là, si je fais ça, même chose, il va appeler la méthode « to string », donc, on a bien le contenu de la méthode Afficher, vu que dans la méthode « to string », on a redirigé sur la méthode Afficher. Voilà pour la méthode « to string ». La deuxième méthode de la classe objet que je vais présenter, c'est « Equals ». La méthode « Equals », qui est ici, va permettre de comparer deux objets, c'est-à-dire l'instance courante et l'objet que je reçois en paramètre. Comment ça s'utilise ? Si je fais ça, je crée deux élèves qui ont le même nom et le même prénom. Si je fais « EleveBean == EleveBean2 », est-ce que ça va marcher ? Non, car c'est deux instances différentes, ils ont le même nom et prénom, mais ça reste deux instances différentes. Par contre, si je fais « elevebean.equals(elevebean2) », est-ce que ça va marcher ? Il suffit d'aller voir le contenu de la méthode « Equals ». Qu'est-ce qu'il fait ? Il compare l'adresse mémoire, ça ne va pas marcher. L'intérêt de la méthode « Equals » va être de pouvoir surcharger la méthode, pour nous dire à quel moment on considère que les deux objets sont égaux autre que leur adresse mémoire, par rapport à leur nom et prénom. Ici, je vais devoir remplir la méthode « Equals ». Il existe un générateur, clic droit, « Generate », qui va vous permettre de générer la méthode « to string » en fonction des attributs présents dans la classe, donc, je choisis les éléments que je veux comparer, même chose pour le HCode, mais on va passer, voilà. Je vais supprimer le HCode, on va se concentrer sur « Equals ». Qu'est-ce qu'il m'a écrit ? Il va vérifier si la valeur « Object » est nulle ou non. Ici, il va comparer si ça a le même nom de classe. Le même nom de classe revient à dire qu'un enseignant n'est pas la même chose qu'un élève. Il va caster cet objet en Personne et il va comparer l'instance courante avec la personne reçue en paramètres. Comparer les deux âges, les deux noms, les deux prénoms. Maintenant, essayons ceci : là, il me renvoie « False. » Pourquoi il me renvoie « False », alors qu'ils ont les mêmes noms, prénoms et qu'on a comparé l'ensemble ? Testons avec le débogueur. J'arrive ici, je vais à l'intérieur et je regarde, jusque là, tout est bon. Là, âge 39 et âge 2. Et oui, on avait donné un âge aléatoire, donc les personnes ne sont pas identiques. Maintenant, si on leur donne un âge similaire. Cette fois, il nous dit bien que nos deux élèves sont identiques. Du moins, qu'ils ont les mêmes valeurs et attributs. Si je veux comparer uniquement le nom et prénom, à moi de modifier ma méthode « Equals » pour ne prendre en compte que le nom et prénom. Si je veux comparer deux personnes, élève ou enseignant, pas d'importance, dans ce cas, dans ma méthode « Equals », je vais retirer ce passage, ici. Je vais plutôt mettre : si « o == null » et que « o instanceof Personne », donc si « o = null » et que o n'est pas, ça c'est le symbole de négation, ça veut dire que si ça, ça vaut « true », ça, ça vaut « false ». Cela inverse le booléen. Si ce n'est pas une personne, on dit que c'est pas les mêmes choses, sinon, on peut la convertir en personne. Ce qui va nous permettre de pouvoir comparer un enseignant avec une personne. Il n'y a pas le constructeur « âge » sur la classe Enseignant. Et voilà, il m'indique que les deux sont identiques. Ils ont bien le même prénom, le même nom et le même âge. Voilà pour les explications sur la classe objet. Il y a d'autres méthode, mais je pense que « Equals » et « toString » sont les deux plus importantes.

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 !