Bonjour à tous,

Une question m'assaille, pourquoi lorsque l'on fait appel à la surcharge des constructeur, on ne peut qu'appeler un autre constructeur à la première ligne. Je m'explique :

Ce code fonctionne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
public class Toto{
 
 private int a;
 
 public Toto(int a){
   this.a = a;
 }
 
 public Toto(){
   this(0);
 }
 
}
Mais pourquoi celui là ne fonctionne pas (le deuxième constructeur n'appelle pas le premier sur sa première ligne) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
public class Toto{
 
 private int a;
 
 public Toto(int a){
   this.a = a;
 }
 
 public Toto(){
   int b = 2;
   this(b);
 }
 
}
L'erreur : "Constructor call must be the first statement in a constructor " est généré, n'empèche que j'aimerais bien savoir....