Classe mère et this.

PiTiPiEdKiPuE
Classe mère et this.

Bonjour à tous,
Je suis nouveau ici ;)

Dites, j'ai un petit problème avec un exercice en informatique...

Un étudiant a écrit un code Java, la classe Entier reprise intégralement ci-dessous :

public class Entier {
public int i;
public Entier (int i)
{this.i=i;}
public int getInt()
{return this.i;}

}

Dans une classe de test, il écrit les deux lignes suivantes :

Entier e=new Entier (42)
System.out.println(e);

a) Pouvez-vous m'expliquer ce qu'il se passe lors de l'exécution du ce code et m'expliquer pourquoi on voit Entier@1e9c82e s'afficher à l'écran ?
b) Que faudrait-il changer à la classe Entier pour que 42 s'affiche à l'écran dans ce cas ?

Merciiii ;)

sebastienj

Quel bel énoncé, l'intérêt est justement d'arriver à le résoudre : si on te donne directement l'explication ça ne servira à rien.

Petite piste : cherche à quoi correspond Entier@1e9c82e et aussi à ce que toi tu écrirais pour afficher 42 sans te préoccuper des 2 lignes de la classe de test.

fredericmazue

Et puis pense aussi qu'en Java toute classe dérive de la classe Object, et que cette dernière comporte une méthode toString dont la lecture de la Javadoc est instructive.
Avec ce conseil et celui de sebastienj tu pourras facilement faire ton exo :)

PiTiPiEdKiPuE

C'est bien ça...
System.out.println () fait donc appel par défaut à la méthode implémentée dans la classe Object de jave -_-'

J'en ai créée une méthode toString dans ma classe Entier :)
Merci !

[EDIT]
ou encore, dans la classe de test : system.out.println (e.getInt());

;)

fredericmazue

Quote:
ou encore, dans la classe de test

toString dans la classe Entier, c'est plus dans l'esprit :)