Initialiser attributs dans un constructeur par le biais de méthode

Signaler
Messages postés
4
Date d'inscription
jeudi 25 mars 2010
Statut
Membre
Dernière intervention
23 avril 2010
-
cs_DARKSIDIOUS
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
-
Bonjour à tous,
j'ai un problème concernant l'initialisation de mes attributs d'une classe. En effet je souhaite pouvoir les initialiser pour la plupart par des méthodes que j'ai crée.
Par exemple:

public Class Classe1 {
//Attribut
private int attribut1;

//Constructeur
public Classe1 () {
this.methode1(attribut1);
}
//Méthodes
public methode1(int i) {
@@@//UTILISATION DE i
}
//Accesseur
public int getAttribut1() {
return attribut1;
}

Voilà sauf que mon soucis est que mon getAttribut1 retourne toujours null, en fait je me sers de mon getter dans une autre méthode ce qui signifie que l'initialisation de l'attribut 1 ne fonctionne pas. Et lorsque que je passe en static ma méthode cela ne change rien, je ne vois pas comment faire pour l'initialiser de cette façon

Merci!

3 réponses

Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
94
Salut,

Pourquoi tu ne fais pas un setter ? Ce serait bien plus standard :
public Class Classe1 { 
//Attribut 
private int attribut1; 

//Constructeur 
public Classe1 (int attribut1) { 
this.attribut1 = attribut1:
} 

//Accesseur 
public int getAttribut1() { 
return attribut1; 
}
public void setAttribut1(int i) { 
attribut1=i;
} 

______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
4
Date d'inscription
jeudi 25 mars 2010
Statut
Membre
Dernière intervention
23 avril 2010

Merci pour la réponse,
le problème est que ma méthode est un peu plus compliquée, j'ai pas mal de codes dedans et plusieurs paramètres qui sont de plus des attributs de ma classe, donc cela ne peut pas s'appeler setAttribut1, et je pense que cela ne serait pas très "esthétique" de mettre
setAttribut1Attribut2(int i, String t,...) {} ??
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
94
Salut,

Le constructeur est fait pour initialiser les différents attributs de la classe (pense à la surcharge si tu veux faire des attributs facultatifs).
Si tu veux initialiser plusieurs attributs en même temps après avoir créer l'instance de ta classe, à toi de trouver une convention de nommage, cela n'est pas très important. Par contre, il faut bien l'appeler à partir de l'instance de ta classe, sinon tu perdras tes valeurs.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement