Syntaxe étrange

alonsyl Messages postés 348 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 6 novembre 2008 - 30 mars 2006 à 00:42
cs_nomad56 Messages postés 54 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 13 avril 2006 - 1 avril 2006 à 03:13
bonjour,

dans un bouquin, j'ai trouve un code du genre :
class Bird {
{ System.out.print("toto"); }
public Bird() { System.out.print("tata"); }
}

qu'est ce que c'est que ce truc en rouge ?
comment et a quel moment ecrit t'on "toto" ?

merci a vous,

alonsyl

4 réponses

tucobouch Messages postés 194 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 1 mai 2009 50
30 mars 2006 à 01:05
J'avoue ne pas connaitre cette syntaxe... apres tests, je remarque que le code en rouge est appellé juste avant l'appel au constructeur pour toute nouvelle instantiation d'un objet Bird.

Ainsi,
Bird b=new Bird();

affiche: tototata

Si on appelle une fonction statique de la classe, le code en rouge n'est pas executé.
0
kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
30 mars 2006 à 10:24
Salut,

c'est un bloc d'initialisation qui est appelé avant le constructeur. Cela permet de faire une initialisation par défaut de certains paramètres.
Il existe le même avec le mot static devant qui sera appelé une seule fois lors de l'accès à un membre de la classe
0
alonsyl Messages postés 348 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 6 novembre 2008 12
30 mars 2006 à 11:05
est-ce que comme pour une methode static la methode est "globale" (j'entends par la quelle est partagee par toutes les instances de Bird).

merci a vous,

alonsyl
0
cs_nomad56 Messages postés 54 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 13 avril 2006 1
1 avril 2006 à 03:13
moi si j'étais toi, je laisserai ca de coté, ca ma l'air bizarre comme truc ...
et faire une initialisation par défaut de certains paramètres, personnelement je ferai ca dans les constructeurs moi ( surtout dans le constructeur par défaut )... m'enfin...
0
Rejoignez-nous