2010-10-25 6 views
1

Possible en double:
Instance variable initialization in javaOù construire un objet

Bonjour, quelqu'un peut me dire quelle est la différence/avantages ou les inconvénients de la création d'un objet avec la déclaration de l'instance de classe vars-à-dire ..

public class ClassName{ 
    Object o = new Object(); 
} 

dans le contructor

public class ClassName{ 
    Object o; 
    public ClassName(){ 
     o = new Object(); 
    } 
} 

merci!

+0

duplication possible: http: //stackoverflow.com/questions/3918578/should-i-initialize-variable-within-constructor-or-outside-constructor – Emil

Répondre

0

Dans votre cas, c'est effectivement la même chose.

La différence serait si

  1. il y avait d'autres domaines qui dépendent de champ « o » ou
  2. il y avait d'autres constructeurs
1

bien dans le cas supérieur, il y a toujours un objet fabriqué Si la classe est chargée, dans le cas contraire, vous créez uniquement l'objet si la classe est instanciée.

Je suppose que la deuxième voie est toujours la bonne façon de procéder si vous ne rendez pas le champ statique.

0

Je le construis généralement à la déclaration s'il s'agit d'un constructeur par défaut "trivial". Je l'ai mis dans le constructeur si

  • J'ai besoin différentes initialisations pour différents constructeurs (évidemment)
  • L'initialisation dépend d'un argument du constructeur (évidemment)
  • L'initialisation du champ nécessite des travaux, comme obtenir la valeur de quelque part ailleurs. Comme toujours quand il n'y a pas de différence sémantiquement

, règle générale est la suivante: Optez pour l'alternative que vous trouverez plus lisible.

Questions connexes