Les Contructeurs [Résolu]

Signaler
Messages postés
33
Date d'inscription
samedi 4 décembre 2010
Statut
Membre
Dernière intervention
31 mars 2016
-
Messages postés
33
Date d'inscription
samedi 4 décembre 2010
Statut
Membre
Dernière intervention
31 mars 2016
-
Bonjour,

J'ai été surpris dans un code source, que certains reconnaitrons peut-être, un constructeur dans lequel on passe un paramètre à l'objet en question. un code exemple est plus explicite. j'ai deux classe A et B qui ensemble feront un composant swing crée de toute pièce.

public class A {
private Parametre champ1;
public A(Parametre p){
this.champ1 = p;
}

public void methode(){
System.out.println("aucune importance");
}
}

//et dans la deuxième classe j'ai un code comme ceci

public class B{
private A champ2;

public B(Parametre p2){
this(new A(p2)); // je ne comprends pas cette ligne
}

}

Comme j'ai mis en commentaire je ne comprends pas ce que cette ligne fais exactement. dans mes analyses je me suis dis que l'instance de l'objet B doit recevoir l'instance de l'objet A pur que les deux soient en fait un.
Si quelqu'un peut m'expliquer ce code, il pourra sauver une âme en détresse. et comment faire si l'on veut que l'objet A utilise un champ de l'objet B? Merci déjà.
Tout ce qui brille n'est pas or.

2 réponses

Messages postés
16360
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
11 juin 2021
122
Bonjour,

Il doit manquer un morceau de code pour que ça fonctionne...

Quelque chose comme ceci :

public class B {

     private A champ2;
     
     public B(A a) { // constructeur 1
          this.champ2 = a;
     }

     public B(Parametre p2) { // constructeur 2
          this(new A(p2));
     }
}

Dans le constructeur 2,
this(unObjetA)
appelles le constructeur 1 avec un paramètre de type A que l'on construit grâce à
new A(p2)
.

Voir : Using the this Keyword
Messages postés
33
Date d'inscription
samedi 4 décembre 2010
Statut
Membre
Dernière intervention
31 mars 2016

Merci à toi Kx pour ta promptitude à répondre à mes question. je plonge tout de suite sur ta suggestion et je reviens. Merci encore.