Je cherchais sur certains code l’autre jour et je suis tombé sur :
En venant de C++, je n’avais aucune idée pourquoi qui était là. Ce n’est pas une erreur parce que le code compilé fine. Qu’est-ce « statique » bloc de code ?
Je cherchais sur certains code l’autre jour et je suis tombé sur :
En venant de C++, je n’avais aucune idée pourquoi qui était là. Ce n’est pas une erreur parce que le code compilé fine. Qu’est-ce « statique » bloc de code ?
C'est un initialiseur statique. C'est exécutée lorsque la classe est chargée (ou initialisé, pour être précis, mais vous ne remarquerez pas la différence).
Il peut être considéré comme un "constructeur de la classe".
Notez qu'il existe également d'instance initialiseurs, qui regardent la même chose, sauf qu'ils n'ont pas l' static
mot-clé. Ces actions sont menées en plus le code dans le constructeur, lorsqu'une nouvelle instance de l'objet est créé.
C'est un initialiseur statique. C'est exécutée lorsque la classe est chargée et un bon endroit pour mettre de l'initialisation des variables statiques.
À partir de http://java.sun.com/docs/books/tutorial/java/javaOO/initial.html
Une classe peut avoir un nombre quelconque d'initialisation statique blocs, et ils peuvent apparaître n'importe où dans le corps de la classe. Le système d'exécution de garanties que l'initialisation statique blocs sont appelés dans l'ordre qu'ils apparaissent dans le code source.
Si vous avez une classe statique de recherche de carte, il pourrait ressembler à ceci
class MyClass {
static Map<Double, String> labels = new HashMap<Double, String>();
static {
labels.put(5.5, "five and a half");
labels.put(7.1, "seven point 1");
}
//...
}
Il est utile depuis la champ statique pourrait ne pas avoir été initialisé à l'aide d' labels = ...
. Il doit appeler la méthode put en quelque sorte.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.