La classe java.lang.String hérite directement de la classe java.lang.Object, donc on peut effectivement écrire
Dans ce cas, ta variable x sera de type object mais contiendra une String, et le code
te renverra TRUE.
Pour le show('0'+i) c'est un peu fourbe mais oui c'est possible.En fait, l'appel à l'opérateur + appliqué à une String ("toto"+...) va implicitement créer un objet de type StringBuilder et va utiliser la fonction append() pour la concaténation. Donc il va être possible de concaténer des int,double,float etc.. avec une String de façon implicite.
Au final tu aura une chaine de caractère (ici "04") et donc tu appellera la fonction show(String s)
L'instruction show(y + i + 2) renverra donc "Natasha42"
Par contre show(i + 2 + y) va renvoyer "6Natacha"
Pour les cast en Java, il y a deux cas.
- Si il s'agit d'un cast ascendant (de String vers Object comme ici) celui ci est fait implicitement, donc pas besoin de l'écrire.
- Si il s'agit d'un cast descendant (de Object vers String ) il faut le spécifier en précisant la classe vers laquelle on veut que le cast soit effectué.
Ici pour utiliser les fonctions propre à la classe String de l'objet x, il faut écrire
show((int) 2.5F /2F diviser par 2F?
Le F signifie Float, donc a mon avis, le résultat de ta division va être casté en (int).
Partager