OVH Cloud OVH Cloud

Demande de conseils

3 réponses
Avatar
Guillaume D.
Je débute en java et je vois qu'on peut déclarer un objet mais aussi le
créer du même coup et je me demandais si ça posait éthiquement un
problème de préférer cette méthode à celle qui consiste à le faire dans
le constructeur, en particulier pour du swing :

public class MaClasse {
private JButton bOk = new JButton("Ok");
private JButton bCancel = new JButton("Cancel");

public MaClass() {
...
}
}

est-il équivalent/mieux que :

public class MaClasse {
private JButton bOk;
private JButton bCancel;

public MaClass() {
bOk = new JButton("Ok");
bCancel = new JButton("Cancel");
...
}
}

3 réponses

Avatar
Black Myst
Guillaume D. wrote:
Je débute en java et je vois qu'on peut déclarer un objet mais aussi le
créer du même coup et je me demandais si ça posait éthiquement un
problème de préférer cette méthode à celle qui consiste à le faire dans
le constructeur, en particulier pour du swing :

public class MaClasse {
private JButton bOk = new JButton("Ok");
private JButton bCancel = new JButton("Cancel");

public MaClass() {
...
}
}

est-il équivalent/mieux que :

public class MaClasse {
private JButton bOk;
private JButton bCancel;

public MaClass() {
bOk = new JButton("Ok");
bCancel = new JButton("Cancel");
...
}
}


Normalement c'est 100% equivalent...

Si tu veux verifier, essaie de compiler les 2 versions et regarde si le
fichier classe est le même.

@+

Avatar
Jérôme Serré
Salut,

Ethiquement il vaut mieux la premiere solution.
Sun recommende même de placer les attributs "private" en fin de fichier.


Signature ------------------------------------------------------------------
-------------- Jérôme Serré http://m.heid.free.fr/expander




"Guillaume D." a écrit dans le message de
news:410ab28c$0$27095$
Je débute en java et je vois qu'on peut déclarer un objet mais aussi le
créer du même coup et je me demandais si ça posait éthiquement un
problème de préférer cette méthode à celle qui consiste à le faire dans
le constructeur, en particulier pour du swing :

public class MaClasse {
private JButton bOk = new JButton("Ok");
private JButton bCancel = new JButton("Cancel");

public MaClass() {
...
}
}

est-il équivalent/mieux que :

public class MaClasse {
private JButton bOk;
private JButton bCancel;

public MaClass() {
bOk = new JButton("Ok");
bCancel = new JButton("Cancel");
...
}
}


Avatar
jerome moliere
Guillaume D. wrote:

Je débute en java et je vois qu'on peut déclarer un objet mais aussi le
créer du même coup et je me demandais si ça posait éthiquement un
problème de préférer cette méthode à celle qui consiste à le faire dans
le constructeur, en particulier pour du swing :

public class MaClasse {
private JButton bOk = new JButton("Ok");
private JButton bCancel = new JButton("Cancel");

public MaClass() {
...
}
}

est-il équivalent/mieux que :

public class MaClasse {
private JButton bOk;
private JButton bCancel;

public MaClass() {
bOk = new JButton("Ok");
bCancel = new JButton("Cancel");
...
}
}
equivalent d'un point de vue bytecode surement mais d'un point de vue

maintenance il est plus logique d'avoir des constructeurs construisant
effectivement les objets....c'est bien plus simple et naturel surtout
quand il s'agit de disposer de constructeurs surcharges...
hth
jerome

--
Auteur cahier du programmeur Java tome 2 - Eyrolles 10/2003
http://www.eyrolles.com/php.informatique/Ouvrages/ouvrage.php3?ouv_ean13—82212111941