Le bloc d'initialisation modifié avec static est appelé bloc d'initialisation statique.
Une attention particulière doit être portée : Le bloc d'initialisation statique n'est exécuté que lorsque la classe est chargée, et ne sera exécuté qu'une seule fois. En même temps, le bloc d'initialisation statique ne peut être exécuté qu'une seule fois. attribuer des valeurs aux variables statiques et ne peut pas initialiser les variables membres ordinaires.
Regardez un morceau de code :
public class HelloWorld { String name; // 声明变量name String sex; // 声明变量sex static int age;// 声明静态变量age // 构造方法 public HelloWorld () { System.out.println("通过构造方法初始化name"); name = "tom"; } // 初始化块 { System.out.println("通过初始化块初始化sex"); sex = "男"; } // 静态初始化块 static { System.out.println("通过静态初始化块初始化age"); age = 20; } public void show() { System.out.println("姓名:" + name + ",性别:" + sex + ",年龄:" + age); } public static void main(String[] args) { // 创建对象 HelloWorld hello = new HelloWorld(); // 调用对象的show方法 hello.show(); } }
Résultat d'exécution :
通过静态初始化块初始化age 通过初始化块初始化sex 通过构造方法初始化name 姓名:tom,性别:男,年龄:20
Étant donné que le bloc d'initialisation statique est exécuté lorsque la classe est chargée, l'initialisation statique est sorti en premier Le contenu de sortie dans le bloc. Ensuite, le bloc d'initialisation normal est exécuté et enfin la méthode constructeur est exécutée. Puisque le bloc d'initialisation statique n'est exécuté que lorsque la classe est chargée et exécuté une seule fois , le bloc d'initialisation statique ne sera pas exécuté lorsque l'objet hello2 sera à nouveau créé.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!