Instancier une classe dans un constructeur d'une autre classe ?
Bonjour à tous,
Débutant en Java, je me posait la question de savoir s'il est possible d'instancier une classe dans le constructeur d'une autre classe, j'ai fait l'essai par curiosité avec une classe Point incluant une classe Toto :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
public class Point {
// mon constructeur de Point
public Point(int abs, int ord, int to) {
x = abs ;
y = ord ;
Toto t = new Toto(to) ;
t.getToto() ; // ok fonctionne
}
// essai classe incluse dans la classe Point (doit-elle être privée ?)
public class Toto {
public Toto(int x) {
a = x ;
}
public void getToto() {
System.out.println("Toto : " + a) ;
}
private int a ;
}
} |
Dans mon main, si j'appelle le constructeur de Point :
Code:
1 2
|
Point p = new Point(1, 2, 3) ; |
J'ai bien Toto : 3 qui s'affiche.
Si j'essaie d'appeler l'instance de Toto créée dans le constructeur Point j'ai une erreur de compilation :
Code:
1 2 3
|
at javaapplication1.JavaApplication1.main(JavaApplication1.java:64)
Java Result: 1 |
Ceci est juste un essai, je me posais la question de savoir s'il est possible d'instancier une classe dans le constructeur d'une autre classe.
Pourriez-vous svp me dire ce qui cloche dans le code et si c'est quelque chose qui se fait en général en Java, si ça a un intérêt et si c'est bien sous cette forme que ça doit se faire ?
Par ailleurs est-il possible de la même manière d'instancier une classe directement en argument d'un autre constructeur ?
Je vous remercie,
C. Tobini