Attributs, constructeurs et initialisation
	
	
		Bonjour,
ne développant pas en java/objet depuis longtemps j'ai une question existentielle sur la création d'une classe métier, avec ou non l'initialisation de ses attributs.
Je m'explique : imaginons une class ayant 3 atttributs de type String, un attribut de type List<String>, un d'un type "personnalisé" (d'une autre classe) et un de type int.
En gros ceci :
	Code:
	
| 12
 3
 4
 5
 6
 7
 8
 9
 
 |  
public class My_New_Class {
    private int id;
    private String myString1;
    private String myString2;
    private String myString3;
    private List<String> myList1;
    private MyObject myObject1;
} | 
 Imaginons 2 constructeurs différents :
	Code:
	
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 
 |  
public class My_New_Class {
    ...
 
    public My_New_Class(String myString1, String myString2){
        this.myString1 = myString1;
        this.myString2 = myString2; 
    }
 
    public My_New_Class(String myString1, String myString2, String myString3){
        this.myString1 = myString1;
        this.myString2 = myString2; 
        this.myString3 = myString3; 
    }
} | 
 Quand faut il initialiser directement les attributs dans leur déclaration ?
Je pars du principe (enfin ma logique) qu'il faut initialiser les objets "complexes" si il ne le sont pas dans les constructeurs.
Ici :
	Code:
	
| 12
 3
 
 |  
    private List<String> myList1 = null;
    private MyObject myObject1 = null; | 
 Et j'aurais tendance à initialiser aussi les types "primitifs" qui ne sont pas commun à tous les constructeurs.
Ici, j'aurais fait :
	Code:
	
| 12
 3
 4
 
 |  
    private int id = -1;
    ...
    private String myString3 = null; | 
 
Donc en gros, cela donnerait ceci au final :
	Code:
	
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 
 |  
public class My_New_Class {
    private int id = -1;
    private String myString1;
    private String myString2;
    private String myString3 = null;
    private List<String> myList1 = null;
    private MyObject myObject1 = null;
 
    public My_New_Class(String myString1, String myString2){
        this.myString1 = myString1;
        this.myString2 = myString2; 
    }
 
    public My_New_Class(String myString1, String myString2, String myString3){
        this.myString1 = myString1;
        this.myString2 = myString2; 
        this.myString3 = myString3; 
    }
} | 
 Selon vous, est ce bon ? ou généralement on évite de le faire dans la déclaration, et on initialise tout dans chaque constructeur ?
Par avance merci.