Exemple de mot clé Java Static

Exemple de mot-clé Java Static

Le mot cléstatic en Java est un modificateur utilisé pour créer du code efficace en mémoire. Il aide à gérer la mémoire occupée par les objets, les variables et les définitions de méthodes. Le mot-clé static garantit qu'il n'y a qu'une seule instance de la méthode, de l'objet ou de la variable concerné créée en mémoire.

Il est utilisé quand on a besoin d'une variable de niveau de classe pour gérer certaines valeurs d'attribut et aussi quand on a besoin d'une méthode de niveau de classe pour effectuer certaines opérations. L'utilisation du mot-clé static est discutée dans chaque contenu en détail ci-dessous.

1. Mot clé STATIC comme modificateur de variable

Le mot clé statique, lorsqu'il est utilisé pour des variables, indique qu'une variable ne doit être instanciée qu'une seule fois par classe. Il occupe une unité de mémoire selon son type de données, quel que soit le nombre d'objets créés. Ainsi, la valeur du mot-clé static est commune à tous les objets de la classe particulière.

Une variable statique est un type de variable qui ne nécessite pas d'instance d'objet pour y accéder. Il est directement accessible en utilisant la syntaxe<classname>.<variablename>

Comprenons-le avec un exemple:

Le code ci-dessous est une classe contenant certains détails d'un employé. Il contient une variable statique «count» qui est utilisée pour compter le nombre d'employés en cours de création.

Employee.java

package com.techfou;

public class Employee {

    static int count = 0;
    private String name;
    private int leaves;

    Employee() {
        count++;
    }

    Employee(String name, int leaves) {
        this.name = name;
        this.leaves = leaves;
        count++;
    }

    public static int getCount() {
        return count;
    }

    public static void setCount(int count) {
        Employee.count = count;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getLeaves() {
        return leaves;
    }

    public void setLeaves(int leaves) {
        this.leaves = leaves;
    }

}

La classe ci-dessous est une classe de test créée pour tester la fonctionnalité et le fonctionnement d'une variable statique. Lors de l'exécution du code, vous pouvez voir que la valeur de la variable statique «count» est partagée entre tous les objets employés.

StaticVariableExample.java

package com.techfou;

public class StaticVariableExample {

    public static void main(String[] args) {

        Employee e1 = new Employee("Employee1", 5);
        Employee e2 = new Employee("Employee2", 10);

        System.out.println("Employee Count using e1: " + e1.getCount());
        System.out.println("Employee Count using e2: " + e2.getCount());
        System.out.println("Employee Count using static reference: " + Employee.getCount());

    }

}

Dans la classe Employee, «count» est une variable statique qui n'a été instanciée qu'une seule fois par classe. Ainsi, quel que soit le nombre d'objets que nous créons, la valeur de «count» est partagée entre tous les objets clairement visibles dans la sortie.

Lors de l'exécution de la classe StaticExample, la sortie est obtenue comme indiqué ci-dessous:

Employee Count using e1: 2
Employee Count using e2: 2
Employee Count using static reference: 2

2. Mot clé STATIC comme modificateur de méthode

Une méthode statique en Java est utilisée lorsque le développeur souhaite exposer la méthode directement à l'utilisateur, c'est-à-dire sans avoir besoin de créer un objet réel pour appeler la méthode. Les méthodes statiques peuvent être directement appelées en utilisant la syntaxe<classname>.<methodname>.

Une méthode statique ne peut agir que sur des variables et des objets statiques. En plus de cela, tout appel de méthode effectué par une méthode statique doit référencer à son tour une méthode statique.

Comprenons cela avec un exemple:

StaticMethodExample.java

package com.example;

public class StaticMethodExample {

    private int x = 0;
    private static int y = 0;

    public static void main(String[] args) {
        // If uncommented, x++ gives compilation error
        // x++;

        // y++ works fine without compilation error
        y++;

        // If uncommented, sayHello() gives compilation error
        // sayHello();

        // sayHi() works fine without compilation error
        sayHi();
        System.out.println("Value of y is: " + y);
    }

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

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

}

Veuillez noter les commentaires également dans le code ci-dessus. Ils spécifient les contextes dans lesquels vous pouvez obtenir des erreurs de compilation en référençant une variable ou une méthode non statique à partir d'une fonction statique. En exécutant le code ci-dessus, nous obtenons la sortie suivante.

Hi
Value of y is: 1

Télécharger le code source

Téléchargez-le -StaticKeyword.zip (6 KB)