Maison  >  Article  >  Java  >  Comment implémenter l'initialisation d'instance et l'initialisation statique en Java

Comment implémenter l'initialisation d'instance et l'initialisation statique en Java

PHPz
PHPzavant
2023-06-02 18:17:391189parcourir

    Le bloc d'initialisation du code Java est un concept très important dans le langage Java. Lorsqu'un objet est créé, le bloc d'initialisation est chargé d'effectuer certaines opérations nécessaires, telles que la définition de l'état initial de l'objet et l'initialisation des variables membres. Les blocs d'initialisation sont divisés en deux types : les blocs d'initialisation d'instance et les blocs d'initialisation statiques.

    Le bloc d'initialisation de l'instance est exécuté lors de la création de l'objet et sera exécuté à chaque fois qu'un nouvel objet est créé. Utilisé pour effectuer les opérations requises lors de la création d'un objet, telles que l'initialisation des variables d'instance, il s'agit du bloc d'initialisation d'instance. Voici un exemple :

    public class Example {
        private int var1;
        private String var2;
    
        // 实例初始化块
        {
            var1 = 10;
            var2 = "Hello, world!";
        }
    
        public Example() {
            System.out.println("Constructor");
        }
    }

    Nous définissons une classe Exemple et y ajoutons un bloc d'initialisation d'instance comme indiqué ci-dessous. Lorsque nous créons l'objet Exemple, le bloc d'initialisation de l'instance est exécuté pour définir les valeurs initiales de var1 et var2.

    Le bloc d'initialisation statique d'une classe n'est exécuté qu'une seule fois lorsque la classe est chargée et avant l'appel du constructeur de classe. L'initialisation des variables statiques peut être réalisée via un bloc d'initialisation statique lors du chargement de la classe, qui est utilisé pour effectuer les opérations associées. Voici un exemple :

    public class Example {
        private static int var1;
        private static String var2;
    
        // 静态初始化块
        static {
            var1 = 20;
            var2 = "Goodbye, world!";
        }
    
        public static void main(String[] args) {
            System.out.println(var1);
            System.out.println(var2);
        }
    }

    Nous avons défini une classe Exemple dans le code ci-dessus et ajouté un bloc d'initialisation statique. Lorsque nous exécutons la méthode main dans la classe Exemple, le bloc d'initialisation statique est exécuté et utilisé pour définir les valeurs initiales de var1 et var2.

    Le bloc d'initialisation d'instance et le bloc d'initialisation statique sont tous deux des concepts très importants en Java. Ils peuvent être utilisés pour effectuer certaines opérations nécessaires, telles que l'initialisation des variables, le prétraitement, etc. Ci-dessous, nous présenterons en détail le processus d'initialisation d'instance et d'initialisation statique.

    1. Initialisation de l'instance

    Le bloc d'initialisation de l'instance est exécuté lors de la création d'un objet, et sera exécuté à chaque fois qu'un nouvel objet est créé. Dans une classe, nous pouvons utiliser des blocs d'initialisation d'instance pour attribuer des valeurs initiales aux variables d'instance.

    1.1 Processus d'initialisation d'instance

    Ce qui suit est un exemple montrant le processus d'exécution du bloc d'initialisation d'instance :

    public class Example {
        private int var1;
        private String var2;
    
        // 实例初始化块
        {
            var1 = 10;
            var2 = "Hello, world!";
        }
    
        public Example() {
            System.out.println("Constructor");
        }
    
        public static void main(String[] args) {
            Example e = new Example();
        }
    }

    Nous avons créé une classe d'exemple dans l'extrait de code ci-dessus et y avons ajouté un bloc d'initialisation d'instance. Dans la méthode principale, nous créons un objet Exemple. Le bloc d'initialisation de l'instance sera exécuté lors de la création de l'objet et est utilisé pour définir les valeurs initiales de var1 et var2.

    1.2 Ordre d'initialisation de l'instance

    Après toutes les opérations dans le constructeur, l'ordre d'exécution du bloc d'initialisation de l'instance est avant lui. Voici un exemple montrant l'ordre d'exécution des blocs d'initialisation d'instance et des constructeurs :

    public class Example {
        private int var1;
        private String var2;
    
        // 实例初始化块
        {
            System.out.println("Instance Initialization Block");
            var1 = 10;
            var2 = "Hello, world!";
        }
    
        public Example() {
            System.out.println("Constructor");
        }
    
        public static void main(String[] args) {
            Example e = new Example();
        }
    }

    Nous avons défini une classe Exemple dans le code ci-dessus et ajouté un bloc d'initialisation d'instance et un constructeur. Dans la méthode principale, nous créons un objet Exemple.

    Lorsque nous exécutons le programme, nous constaterons que la sortie du bloc d'initialisation de l'instance est avant le constructeur. Cela prouve que le bloc d'initialisation de l'instance est bien exécuté avant le constructeur.

    1.3 Notes sur l'initialisation de l'instance

    Dans le bloc d'initialisation de l'instance, nous pouvons accéder aux variables d'instance. Cependant, l'accès à des variables ou méthodes statiques dans un bloc d'initialisation d'instance n'est pas autorisé. Les variables ou méthodes statiques peuvent être référencées par leur nom de classe dans un bloc d'initialisation d'instance.

    2. Initialisation statique

    Le bloc d'initialisation statique est exécuté lorsque la classe est chargée et exécuté une seule fois. Il est exécuté avant l'appel du constructeur de classe. Dans une classe, nous pouvons utiliser des blocs d'initialisation statiques pour attribuer des valeurs initiales aux variables statiques.

    2.1 Processus d'initialisation statique

    Ce qui suit est un exemple montrant le processus d'exécution d'un bloc d'initialisation statique :

    public class Example {
        private static int var1;
        private static String var2;
    
        // 静态初始化块
        static {
            var1 = 20;
            var2 = "Goodbye, world!";
        }
    
        public static void main(String[] args) {
            System.out.println(var1);
            System.out.println(var2);
        }
    }

    Nous définissons une classe d'exemple et y ajoutons un bloc d'initialisation statique en haut du code. Dans la méthode principale, nous générons les valeurs de var1 et var2.

    Lorsque nous exécutons le programme, nous constaterons que la sortie du bloc d'initialisation statique se produit avant la méthode principale. Cela prouve que le bloc d'initialisation statique est bien exécuté lorsque la classe est chargée.

    2.2 L'ordre d'initialisation statique

    L'ordre dans lequel ils apparaissent dans le code détermine l'ordre d'initialisation des blocs d'initialisation statiques et des variables statiques. Voici un exemple montrant la séquence d'initialisation des blocs d'initialisation statiques et des variables statiques :

    public class Example {
        private static int var1 = 10;
        private static String var2;
    
        // 静态初始化块
        static {
            System.out.println("Static Initialization Block");
            var2 = "Hello, world!";
        }
    
        public static void main(String[] args) {
            System.out.println(var1);
            System.out.println(var2);
        }
    }

    Nous avons déclaré une classe nommée Exemple dans le code ci-dessus et y avons ajouté une variable statique et un bloc d'initialisation statique. Dans la méthode principale, nous générons les valeurs de var1 et var2.

    Nous remarquerons que la sortie du bloc d'initialisation statique ne sera exécutée que lorsque la variable statique sera initialisée. Cela prouve que le bloc d'initialisation statique est bien exécuté après l'initialisation des variables statiques.

    2.3 Notes sur l'initialisation statique

    Dans le bloc d'initialisation statique, nous pouvons accéder aux variables et méthodes statiques. Cependant, l'accès aux variables ou méthodes d'instance dans un bloc d'initialisation statique n'est pas autorisé. Afin d'utiliser des variables ou des méthodes d'instance, nous pouvons créer une référence d'objet et la placer dans un bloc d'initialisation statique.

    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!

    Déclaration:
    Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer