« Je voudrais te parler peu de la comparaison de variables en Java. »
« Tu connais déjà les opérateurs de comparaison les plus simples : inférieur à (<) et supérieur à (>). »
« Absolument. »
« Il y a aussi des opérateurs comme égal à (==) et non égal à (!=). Mais aussi inférieur ou égal à (<=) et supérieur ou égal à (>=). »
« Ça commence à devenir intéressant. »
« Note bien qu'il n'y a pas d'opérateurs =< ou => en Java ! »
« Le signe = est utilisé pour les opérations d'affectation. C'est pourquoi nous utilisons deux signes égal (==) pour tester l'égalité. Pour vérifier si des variables ne sont pas égales, tu utilises l'opérateur !=. »
« Je vois. »
« Quand tu compares deux variables en Java en utilisant l'opérateur ==, tu compares le contenu des variables. »
« Ainsi, pour des variables primitives, leurs valeurs sont comparées. »
« Mais pour les variables de référence, ce sont les références qui sont comparées. Supposons que nous avons des objets identiques mais distincts. Comme leurs références sont différentes, une comparaison montrera qu'ils ne sont pas égaux, c'est-à-dire que le résultat de la comparaison sera false. Une comparaison de références ne renverra true que si les deux références désignent le même objet. »
« Pour comparer le contenu interne d'objets, nous utilisons la méthode spéciale equals. Cette méthode (tout comme toutes les méthodes de la classe Object) est ajoutée à ta classe par le compilateur, même si tu ne la déclares pas. Je vais te montrer quelques exemples : »
Code | Explication | |
---|---|---|
1 | |
Compare des types primitifs. true s'affichera à l'écran. |
2 | |
Compare des références. true s'affichera à l'écran. Les deux variables stockent des références au même objet. |
3 | |
Compare des références. true s'affichera à l'écran. Les deux variables stockent des références au même objet. |
4 | |
Compare des références. false s'affichera à l'écran. Les deux variables font référence à des objets Chat identiques, mais pas le même. |
5 | |
Compare des références. false s'affichera à l'écran. Les deux variables font référence à des objets String identiques, mais pas le même. |
6 | |
Compare des objets. true s'affichera à l'écran. Les deux variables font référence à des objets String distincts, mais identiques. |
« Oh, j'avais presque oublié ! Voici quelques exercices pour toi. »
GO TO FULL VERSION