Remarque sur l'initialisation des champs dans le didacticiel Java

"Field Initialization" du tutoriel Java publié sur https://docs.oracle.com/en/java/ .html) Une brève note sur les «blocs d'initialisation statiques» qui était souvent posée sur https://docs.oracle.com/javase/tutorial/java/javaOO/initial.html. (Des commentaires détaillés peuvent être écrits si vous en avez envie)

Explication grossière

Vous pouvez écrire un bloc en utilisant static {....} et y placer l'initialisation du champ statique. C'est ce qu'on appelle les blocs d'initialisation statiques.

Le bloc d'initialisation statique est un bloc qui est exécuté avant le constructeur.

Le bloc d'initialisation statique n'est pas encore exécuté lorsque la classe est simplement utilisée dans la déclaration.

Le bloc d'initialisation statique est exécuté en premier lorsque le constructeur ou la méthode statique de la classe est appelé.

{....} sans statique devient des blocs (blocs d'initialisation) pour l'initialisation des champs d'instance. Ceci est également exécuté avant le constructeur.

La logique dans les blocs d'initialisation est appelée à partir de n'importe quel constructeur, donc s'il y a une surcharge de constructeur, vous pouvez mettre une logique qui fait la même chose pour n'importe quel constructeur.

Si vous souhaitez vérifier l'opération, utilisez la source suivante.

InitializationBlocksSample.java



public class InitializationBlocksSample {
	final static int x;
	int y;

	// Static Initialization Blocks, it is called before first load.
	static {
		x=10;
		System.out.println("Static Initialization Blocks");
	}

	// Initialization Blocks, it it called from all constructors.
	{
		y=10;
		System.out.println("Initialization Blocks");
	}

	// constructor
	public InitializationBlocksSample() {
		System.out.println("non-parameter constructor");
	}

	public InitializationBlocksSample(String param) {
		System.out.println("parameter constructor");
	}

	public static void staticMethod() {
		System.out.println("staticMethod");
	}

	public void instanceMethod() {
		System.out.println("instanceMethod");
	}
}

Main.java



public class Main {
	public static void main(String[] args) {
		InitializationBlocksSample o;

		System.out.println("start");

		InitializationBlocksSample.staticMethod();

		o = new InitializationBlocksSample();
		o.instanceMethod();

		InitializationBlocksSample p = new InitializationBlocksSample("parameter");

	}
}

articles statiques connexes: [histoire statique Java](https://qiita.com/b1ueskydragon/items/2a6e0812a9cee3fc255f#static-%E3%82%A4%E3%83%8B%E3%82%B7%E3% 83% A3% E3% 83% A9% E3% 82% A4% E3% 82% B6)

Recommended Posts

Remarque sur l'initialisation des champs dans le didacticiel Java
Consulter les notes de la classe java.util.Scanner
Consultez les notes de la classe java.util.Optional
Une note de révision pour la classe java.util.Objects
Consulter les notes du package java.time.temporal
Une note sur les différences entre les interfaces et les classes abstraites en Java
ChatWork4j pour l'utilisation de l'API ChatWork en Java
Une histoire sur le JDK à l'ère de Java 11
Mesurer la taille d'un dossier avec Java
Une note quand vous voulez Tuple en Java
Remarques sur Java GC
Remarques sur la portée
Rechercher un sous-ensemble en Java
Faisons une application de calcul avec Java ~ Afficher la fenêtre de l'application
Créer une méthode pour renvoyer le taux de taxe en Java
Un mémorandum pour atteindre le lieu qui démange pour Java Gold
Note n ° 6 "Calculez la formule de la différence de somme à un chiffre reçue sous forme de chaîne de caractères" [Java]
Accéder à l'interface réseau avec Java
Devinez le code de caractère en Java
Les débutants jouent à des jeux Janken en Java
J'ai créé un PDF avec Java.
[Pour les débutants] Exécutez Selenium sur Java
J'ai créé une fonction de réponse pour l'extension Rails Tutorial (Partie 1)
Gérer la logique métier pour un ensemble d'entités dans une classe Java
[Note] Ce que j'ai appris en six mois grâce à des inexpérimentés (Java)
[Note] Ce que j'ai appris en six mois grâce à des inexpérimentés (Java) (1)
Décompressez le fichier zip en Java
[Java] Comment rechercher des valeurs dans un tableau (ou une liste) avec la méthode contains
Un exemple simple de rappels en Java
Analyser l'analyse syntaxique de l'API COTOHA en Java
[Note] Ce que j'ai appris en six mois grâce à des inexpérimentés (Java) (3)
Obtenez l'URL publique du fichier privé de Flickr en Java
J'ai créé une fonction de réponse pour l'extension Rails Tutorial (Partie 5):
Créons une application TODO en Java 5 Changer l'affichage de TODO
Restez coincé dans un Java Primer
Paramètres de débogage SSL dans Java
Comment vérifier le contenu de la chaîne de caractères java de longueur fixe
Tirez parti de l'un ou l'autre pour la gestion des exceptions individuelles dans l'API Java Stream
Appelez la super méthode en Java
Augmenter dynamiquement le nombre d'éléments dans un tableau bidimensionnel Java (tableau multidimensionnel)
L'histoire de l'oubli de fermer un fichier en Java et de l'échec
Exemple de programme qui renvoie la valeur de hachage d'un fichier en Java
[Communication Socket (Java)] Impressions de la mise en œuvre de la communication Socket dans la pratique pour la première fois
Comment obtenir le chemin absolu d'un répertoire s'exécutant en Java
[Java] [Pour les débutants] Comment insérer des éléments directement dans un tableau à deux dimensions
Première programmation de ma vie Java 1st Hello World
[AWS SDK for Java] Définir la stratégie de nouvelle tentative pour le client S3
Configurez une interface graphique Java dans un thread séparé pour conserver le
[Java] Implémenter une fonction qui utilise une classe implémentée dans le modèle Builder
A propos du renvoi d'une référence dans un Java Getter
Qu'est-ce qu'une classe en langage Java (3 /?)
Lors de la recherche de plusieurs dans un tableau Java
Obtenez le résultat de POST en Java
Référence Java à comprendre dans la figure
Introduction à Java pour la première fois # 2
Premiers pas pour l'apprentissage profond en Java
Points clés pour l'introduction de gRPC en Java
Essayez d'utiliser l'API Stream en Java