JavaRush /Blog Java /Random-FR /Pause café #142. Quel rôle le mot-clé static joue-t-il en...

Pause café #142. Quel rôle le mot-clé static joue-t-il en Java ?

Publié dans le groupe Random-FR
Source : FreeCodeCamp Le mot-clé static peut être utilisé dans différentes parties du code Java telles que les variables, les méthodes et les blocs statiques. Aujourd'hui, nous découvrirons exactement comment cela peut être appliqué dans la pratique. Pause café #142.  Quel rôle le mot-clé static joue-t-il en Java ?  - 1L'objectif principal de l'utilisation du mot-clé static en Java est d'économiser de la mémoire. Lorsque nous créons une variable dans une classe à laquelle d'autres classes accéderont, nous devons d'abord créer une instance de la classe, puis attribuer une nouvelle valeur à chaque instance de la variable. Ceci est nécessaire pour que les valeurs des nouvelles variables soient les mêmes pour toutes les nouvelles classes/objets. Mais lorsque nous créons des variables statiques, leur valeur reste constante dans toutes les autres classes et nous n'avons pas besoin de créer une instance pour utiliser la variable. De cette façon, nous créons la variable une fois, donc la mémoire n'est allouée qu'une seule fois. Vous comprendrez mieux cela avec quelques exemples dans cet article.

Comment créer une variable statique en Java

Pour comprendre comment utiliser le mot-clé static lors de la création de variables, examinons la manière habituelle de créer des variables partagées par chaque instance d'une classe.
class Student {
    String studentName;
    String course;
    String school;

    public static void main(String[] args) {
        Student Student1 = new Student();
        Student Student2 = new Student();

        Student1.studentName = "Ihechikara";
        Student1.course = "Data Visualization";
        Student1.school = "freeCodeCamp";

        Student2.studentName = "John";
        Student2.course = "Data Analysis with Python";
        Student2.school = "freeCodeCamp";

        System.out.println(Student1.studentName + " " + Student1.course + " " + Student1.school + "\n");
        // Ihechikara Data Visualization freeCodeCamp
        System.out.println(Student2.studentName + " " + Student2.course + " " + Student2.school);
        // John Data Analysis with Python freeCodeCamp
    }
}
Je vais expliquer étape par étape ce qui s'est passé dans le code ci-dessus. Nous avons créé une classe Student avec trois variables : studentName , course et school . Nous avons ensuite créé deux instances de la classe Student :
Student Student1 = new Student();
Student Student2 = new Student();
La première instance est Student1 , qui a accès aux variables créées dans sa classe, a les valeurs suivantes :
Student1.studentName = "Ihechikara";
Student1.course = "Data Visualization";
Student1.school = "freeCodeCamp";
La deuxième instance avait les significations suivantes :
Student2.studentName = "John";
Student2.course = "Data Analysis with Python";
Student2.school = "freeCodeCamp";
Si vous regardez attentivement, vous constaterez que les deux étudiants portent le même nom d'école - « freeCodeCamp ». Et si nous devions créer 100 élèves pour une même école ? Cela signifie que nous initialiserons la variable avec la même valeur 100 fois, en allouant une nouvelle mémoire à chaque fois. Cela ne pose peut-être pas de problème pour certains, mais dans une base de code volumineuse, cela peut ralentir considérablement le programme. Pour résoudre ce problème, nous utiliserons le mot-clé static pour créer la variable school . Après cela, toutes les instances de la classe peuvent utiliser cette variable. Quelque chose comme ça:
class Student {
    String studentName;
    String course;
    static String school;

    public static void main(String[] args) {
        Student Student1 = new Student();
        Student Student2 = new Student();


        Student1.studentName = "Ihechikara";
        Student1.course = "Data Visualization";
        Student1.school = "freeCodeCamp";


        Student2.studentName = "John";
        Student2.course = "Data Analysis with Python";

        System.out.println(Student1.studentName + " " + Student1.course + " " + Student1.school + "\n");
        // Ihechikara Data Visualization freeCodeCamp
        System.out.println(Student2.studentName + " " + Student2.course + " " + Student2.school);
        // John Data Analysis with Python freeCodeCamp
    }
}
Dans ce code, nous avons créé une variable statique appelée school . Notez que le mot clé static précède le type de données et le nom de la variable : static String school = "freeCodeCamp"; . Désormais, lorsque nous créons une nouvelle instance de notre classe, nous n'avons plus besoin d'initialiser la variable school pour chaque instance. Dans notre code, nous avons attribué une valeur à une variable uniquement dans la première instance, puis elle a été héritée par l'instance suivante. Notez que modifier la valeur d'une variable statique n'importe où dans le code remplace la valeur dans les autres parties du code où elle a été précédemment déclarée. Ainsi, vous ne devez utiliser le mot-clé static que pour les variables destinées à rester constantes dans le programme. Vous pouvez également attribuer une valeur à une variable lorsque vous la créez afin de ne pas avoir à la déclarer à nouveau lorsque vous instanciez la classe : static String school = "freeCodeCamp"; . Voici ce que vous obtenez si vous utilisez cette méthode :
class Student {
    String studentName;
    String course;
    static String school = "freeCodeCamp";

    public static void main(String[] args) {
        Student Student1 = new Student();
        Student Student2 = new Student();


        Student1.studentName = "Ihechikara";
        Student1.course = "Data Visualization";

        Student2.studentName = "John";
        Student2.course = "Data Analysis with Python";

        System.out.println(Student1.studentName + " " + Student1.course + " " + Student1.school + "\n");
        // Ihechikara Data Visualization freeCodeCamp
        System.out.println(Student2.studentName + " " + Student2.course + " " + Student2.school);
        // John Data Analysis with Python freeCodeCamp
    }
}
Vous allez maintenant voir comment initialiser des variables statiques à l'aide de blocs statiques.

Comment créer une méthode statique en Java

Avant de regarder l'exemple, voici quelques choses que vous devez savoir sur les méthodes statiques en Java :
  • Les méthodes statiques ne peuvent accéder et modifier que les variables statiques.
  • Les méthodes statiques peuvent être appelées/utilisées sans créer d’instance de la classe.
Voici un exemple pour vous aider à comprendre cela :
class EvenNumber {

    static int evenNumber;

    static void incrementBy2(){
        evenNumber = evenNumber + 2;
        System.out.println(evenNumber);
    }

    public static void main(String[] args) {
        incrementBy2(); // 2
        incrementBy2(); // 4
        incrementBy2(); // 6
        incrementBy2(); // 8
    }
}
Dans le code ci-dessus, nous avons créé un entier ( evenNumber ) dans une classe appelée EvenNumber . Notre méthode statique s'appelle incrémentBy2() . Cette méthode incrémente la valeur de l'entier pairNumber et imprime sa valeur. Sans créer d'instance de la classe, nous avons pu appeler la méthode incrémentBy2() dans la méthode principale du programme . Chaque fois que nous appelions la méthode, evenNumber était incrémenté de 2 et imprimé. Vous pouvez également ajouter le nom de la classe à une méthode en utilisant la notation par points lors de l'appel de la méthode : EvenNumber.incrementBy2(); . Chaque méthode statique appartient à la classe et non aux instances de la classe.

Comment créer un bloc statique en Java

Les blocs statiques en Java sont similaires aux constructeurs. On peut les utiliser pour initialiser des variables statiques, elles sont exécutées par le compilateur avant la méthode principale .
class Block {

    static int year;

    static {
        year = 2022;
        System.out.println("This code block got executed first");
    }

    public static void main(String[] args) {

        System.out.println("Hello World");
        System.out.println(year);
    }
}
Dans le code ci-dessus, nous avons créé une variable entière statique year . Nous l'avons ensuite initialisé dans un bloc statique :
static {
        year = 2022;
        System.out.println("This code block got executed first");
    }
Comme vous pouvez le voir, un bloc statique peut être créé à l'aide du mot-clé static suivi d'accolades. Dans le bloc statique de notre code, nous avons initialisé la variable année avec la valeur 2022. Nous avons également imprimé du texte : « Ce bloc de code a été exécuté en premier. » Dans la méthode principale , nous avons imprimé « Hello World » et une année variable statique . Dans la console, le code sera exécuté dans cet ordre :
Ce bloc de code a été exécuté en premier Hello World 2022
Cela montre clairement comment le code du bloc statique est exécuté avant la méthode principale .

Conclusion

Dans cet article, nous avons parlé du mot-clé static en Java. Il s'agit d'un mot-clé qui nous aide essentiellement à optimiser la mémoire dans les programmes écrits en Java. Nous avons également vu comment créer des variables et des méthodes statiques avec des exemples. Enfin, nous avons parlé des blocs statiques, qui peuvent être utilisés pour initialiser des variables statiques. Les blocs statiques sont exécutés avant la méthode principale. Bon codage !
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION