CodeGym/Blog Java/Random-FR/Variables statiques en Java
John Squirrels
Niveau 41
San Francisco

Variables statiques en Java

Publié dans le groupe Random-FR
membres

Que sont les variables statiques ?

Les variables statiques ou variables de classe sont partagées entre toutes les instances d'une classe et peuvent être consultées et modifiées sans créer d'instance de la classe. Examinons en profondeur les utilisations et l'implémentation des variables statiques en Java.

Exemple de variable statique en Java

L'une des utilisations les plus courantes des variables statiques consiste à les partager entre toutes les instances d'une classe. Par exemple, une variable compteur qui assure le suivi du nombre d'instances créées ou une variable CONSTANT qui contient une valeur qui ne change jamais. Considérons une classe qui représente un compte bancaire. L'extrait de code suivant montre comment une variable statique nextAccountNumber peut être utilisée pour attribuer des numéros de compte uniques à chaque nouveau compte :

Exemple


// BankAccount class definition
class BankAccount {
  // Declare static variable nextAccountNumber 
  static int nextAccountNumber = 1001;

  // Declare instance variables for accountNumber and balance.
  int accountNumber;
  double balance;

  // BankAccount constructor that assigns unique account number to each instance
  BankAccount() {
    // Assign the current value of nextAccountNumber to accountNumber.
    accountNumber = nextAccountNumber;

    // Increment nextAccountNumber for the next BankAccount object.
    nextAccountNumber++;
  }

  // Method to get the account number of this BankAccount object.
  int getAccountNumber() {
    return accountNumber;
  }

  // Method to get the balance of this BankAccount object.
  double getBalance() {
    return balance;
  }

  // Method to deposit an amount into this BankAccount object.
  void deposit(double amount) {
    // Increase balance by the amount deposited.
    balance += amount;
  }

  // Method to withdraw an amount from this BankAccount object.
  void withdraw(double amount) {
    // Decrease balance by the amount withdrawn.
    balance -= amount;
  }
}

// Main method definition
class Main {
  static void main(String[] args) {
    // Create three BankAccount objects: account1, account2, and account3.
    BankAccount account1 = new BankAccount();
    BankAccount account2 = new BankAccount();
    BankAccount account3 = new BankAccount();
    
    // Display the value of the static variable nextAccountNumber after creating each BankAccount object.
    System.out.println("Value of nextAccountNumber after creating account1: " + account1.getAccountNumber());
    System.out.println("Value of nextAccountNumber after creating account2: " + account2.getAccountNumber());
    System.out.println("Value of nextAccountNumber after creating account3: " + account3.getAccountNumber());
  }
}

Sortir

Valeur de nextAccountNumber après la création du compte1 : 1001 Valeur de nextAccountNumber après la création du compte2 : 1002 Valeur de nextAccountNumber après la création du compte3 : 1003
Dans cet exemple, la méthode main crée trois instances de la classe BankAccount . Le constructeur BankAccount attribue le nextAccountNumber au nouveau compte et incrémente la variable nextAccountNumber de 1. La méthode getAccountNumber renvoie le numéro de compte de chaque compte. La méthode principale imprime ensuite le numéro de compte et la variable nextAccountNumber pour chaque compte. Vous pouvez voir que chaque numéro de compte est unique et la variable nextAccountNumber est incrémentée de un pour chaque nouveau compte créé. Les variables statiques peuvent également être utilisées pour implémenter le modèle de conception Singleton, dans lequel une seule instance d'une classe peut être créée. Une classe singleton est une classe qui ne peut avoir qu'une seule instance dans n'importe quelle application Java et fournit simultanément un point d'accès global à cette instance. L'extrait de code suivant montre comment une instance de variable statique peut être utilisée pour implémenter une classe singleton :

Exemple


public class Singleton {
    // using static variable in the singleton class
    private static Singleton instance;
    private Singleton() { }

    public static Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }

    public void displayMessage() {
        System.out.println("This is a singleton class");
    }

    public static void main(String[] args) {
        Singleton singleton1 = Singleton.getInstance();
        singleton1.displayMessage();

        Singleton singleton2 = Singleton.getInstance();
        singleton2.displayMessage();

        Singleton singleton3 = Singleton.getInstance();
        singleton3.displayMessage();
    }
}

Sortir

Ceci est une classe singleton Ceci est une classe singleton Ceci est une classe singleton
Dans cet exemple, la méthode main crée trois instances de la classe Singleton en appelant la méthode getInstance() . La méthode getInstance() renvoie l'instance de la classe et crée une nouvelle instance s'il n'en existe pas. La méthode displayMessage imprime simplement un message. Ensuite, la méthode main appelle la méthode displayMessage pour chaque instance. Comme vous pouvez le constater, même si nous créons trois instances, un seul objet est créé et partagé entre toutes les instances. Cela prouve qu'une seule instance de la classe est créée et partagée entre toutes les instances et que la variable statique 'instance' est conservée. Il est important de se rappeler que la valeur d'une variable statique est partagée entre toutes les instances d'une classe, de sorte que les modifications apportées à la variable par une instance seront visibles par toutes les autres instances. Une attention particulière doit être accordée aux variables statiques pour éviter les conflits potentiels et les bogues dans votre code. Par exemple, il n'est pas recommandé d'utiliser une variable statique pour contenir une valeur spécifique à une instance d'une classe, telle qu'un solde de compte. Pour renforcer ce que vous avez appris, nous vous proposons de regarder une leçon vidéo de notre cours Java

Conclusion

Pour conclure, une variable statique en Java permet le partage de données entre toutes les instances d'une classe. Ils peuvent être utilisés pour les variables partagées entre toutes les instances, telles que les compteurs et les constantes, ou pour implémenter le modèle de conception Singleton. Cependant, il est important de garder à l'esprit que la valeur d'une variable statique est partagée entre toutes les instances d'une classe, de sorte que les modifications apportées à la variable par une instance seront visibles par toutes les autres instances.
Commentaires
  • Populaires
  • Nouveau
  • Anciennes
Tu dois être connecté(e) pour laisser un commentaire
Cette page ne comporte pas encore de commentaires