Les Contructeurs

Résolu
stealone Messages postés 33 Date d'inscription samedi 4 décembre 2010 Statut Membre Dernière intervention 31 mars 2016 - Modifié par stealone le 26/02/2016 à 02:32
stealone Messages postés 33 Date d'inscription samedi 4 décembre 2010 Statut Membre Dernière intervention 31 mars 2016 - 27 févr. 2016 à 00:57
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

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 127
26 févr. 2016 à 20:18
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
0
stealone Messages postés 33 Date d'inscription samedi 4 décembre 2010 Statut Membre Dernière intervention 31 mars 2016
27 févr. 2016 à 00:57
Merci à toi Kx pour ta promptitude à répondre à mes question. je plonge tout de suite sur ta suggestion et je reviens. Merci encore.
0
Rejoignez-nous