Salut,
tout d'abord, il y a une erreur dans la classe (je ne sais pas si c'est comme ça dans ta faq ou pas, si c'est le cas, il faudrait le signaler) : la classe a deux constructeurs avec la même signature, ce qui est impossible. Le second constructeur ne devrait pas avoir d'argument au vu de son code.
- Lignes 4 et 5 :
D'ou sort le constructeur UneValeur, il a dû être définit précèdement non ?
Tu veux parler de l'appel super(uneValeur) je suppose : le super(..) indique qu'on appelle un constructeur de la classe parente, celle dont hérite cette classe, donc la classe ClasseMere, qui doit avoir un constructeur avec un argument String.
Le second constructeur, ligne 9-12 (s'il était correctement écrit), fait appel au premier par l'emploi de this(...),
- Lignes 4 et 9 :
Ce sont bien des méthodes que l'ont définies ici ?
Non ce sont les constructeurs de la classe MaClasse
- Lignes 8 :
Quels sont ces constructeurs justement ? D'ou viennent-ils ?
Donc question caduque 
- Ligne 10 et 11 :
Que pourrait-on mettre entre les parenthèses ?
On appelle le constructeur de la classe mère ?
ligne 11 : c'est un commentaire...
ligne 10 : donc, comme je le disais, il s'agit de l'appel d'un constructeur de la classe elle-même, ayant un seul argument de type String
dont voici le code correct
1 2 3 4
| public MaClasse(){
this("une valeur par défaut");
//on appelle ici le constructeur définis un peu plus haut
} |
Donc quand on va faire
MaClasse machin=new MaClasse();
C'est comme si on faisait :
MaClasse machin=new MaClasse("une valeur par défaut");
Pour la question, Que pourrait-on mettre entre les parenthèses ?
on appelle donc le constructeur MaClasse(String) qui attend un seul argument de type String : donc entre parenthèse, il faut absolument passer une référence de String comme par exemple une constante :
On pourrait écrire un constructeur avec un argument int:
1 2 3
| public MaClasse(int unnombre){
this(String.valueOf(unnombre));
} |
etc.
- Lignes 14-18 :
Ce que ces lignes font m'échappe complètement :/
Ligne 14 : on définit une méthode appelée uneMethode, n'ayant aucun argument, ni de type de retour, et qui ne fait rien (y'a pas de code dans son corps, entre les { et })
Ligne 15-18 : on définit une autre méthode appelée doubleAppel(), sans argument ni type de retour, et dont le code :
1 2
| this.uneMethode();
uneMethode(); |
consiste à appeler deux fois de suite la méthode uneMethode()
le this. est implicite sur le second appel et explicite sur le premier, mais ça ne change rien dans l'exécution.
Partager