CodeGym/Java-Blog/Random-DE/Statische Variablen in Java
John Squirrels
Level 41
San Francisco

Statische Variablen in Java

Veröffentlicht in der Gruppe Random-DE

Was sind statische Variablen?

Statische Variablen oder Klassenvariablen werden von allen Instanzen einer Klasse gemeinsam genutzt und können aufgerufen und geändert werden, ohne dass eine Instanz der Klasse erstellt werden muss. Lassen Sie uns tiefer eintauchen, um die Verwendung und Implementierung statischer Variablen in Java zu verstehen.

Beispiel für eine statische Variable in Java

Einer der häufigsten Verwendungszwecke für statische Variablen ist die gemeinsame Nutzung durch alle Instanzen einer Klasse. Zum Beispiel eine Zählervariable , die die Anzahl der erstellten Instanzen verfolgt, oder eine CONSTANT- Variable, die einen Wert enthält, der sich nie ändert. Stellen Sie sich eine Klasse vor, die ein Bankkonto darstellt. Der folgende Codeausschnitt zeigt, wie eine statische Variable nextAccountNumber verwendet werden kann, um jedem neuen Konto eindeutige Kontonummern zuzuweisen:

Beispiel

// 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());
  }
}

Ausgabe

Wert von nextAccountNumber nach dem Erstellen von Konto1: 1001 Wert von nextAccountNumber nach dem Erstellen von Konto2: 1002 Wert von nextAccountNumber nach dem Erstellen von Konto3: 1003
In diesem Beispiel erstellt die Hauptmethode drei Instanzen der BankAccount- Klasse. Der BankAccount- Konstruktor weist dem neuen Konto die nextAccountNumber zu und erhöht die Variable nextAccountNumber um 1. Die Methode getAccountNumber gibt die Kontonummer jedes Kontos zurück. Die Hauptmethode gibt dann die Kontonummer und die Variable nextAccountNumber für jedes Konto aus. Sie können sehen, dass jede Kontonummer eindeutig ist und die Variable nextAccountNumber für jedes neu erstellte Konto um eins erhöht wird. Statische Variablen können auch zur Implementierung des Singleton-Entwurfsmusters verwendet werden, bei dem nur eine Instanz einer Klasse erstellt werden kann. Eine Singleton-Klasse ist eine Klasse, die in jeder Java- Anwendung nur eine Instanz haben kann und gleichzeitig einen globalen Zugriffspunkt auf diese Instanz bereitstellt. Der folgende Codeausschnitt zeigt, wie eine statische Variableninstanz zur Implementierung einer Singleton-Klasse verwendet werden kann:

Beispiel

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();
    }
}

Ausgabe

Dies ist eine Singleton-Klasse. Dies ist eine Singleton-Klasse. Dies ist eine Singleton-Klasse
In diesem Beispiel erstellt die Hauptmethode drei Instanzen der Singleton- Klasse, indem sie die Methode getInstance() aufruft . Die Methode getInstance() gibt die Instanz der Klasse zurück und erstellt eine neue Instanz, falls noch keine vorhanden ist. Die displayMessage- Methode gibt lediglich eine Nachricht aus. Anschließend ruft die Hauptmethode für jede Instanz die Methode displayMessage auf . Wie Sie sehen, wird, obwohl wir drei Instanzen erstellen, nur ein Objekt erstellt und von allen Instanzen gemeinsam genutzt. Es beweist, dass nur eine Instanz der Klasse erstellt und von allen Instanzen gemeinsam genutzt wird und die statische Variable „Instanz“ enthalten ist. Es ist wichtig zu bedenken, dass der Wert einer statischen Variablen von allen Instanzen einer Klasse gemeinsam genutzt wird, sodass Änderungen an der Variablen, die von einer Instanz vorgenommen werden, für alle anderen Instanzen sichtbar sind. Statische Variablen sollten sorgfältig berücksichtigt werden, um potenzielle Konflikte und Fehler in Ihrem Code zu vermeiden. Es wird beispielsweise nicht empfohlen, eine statische Variable zum Speichern eines Werts zu verwenden, der für eine Instanz einer Klasse spezifisch ist, beispielsweise einen Kontostand. Um das Gelernte zu vertiefen, empfehlen wir Ihnen, sich eine Videolektion aus unserem Java-Kurs anzusehen

Abschluss

Um dies zusammenzufassen: Eine statische Variable in Java ermöglicht die gemeinsame Nutzung von Daten zwischen allen Instanzen einer Klasse. Sie können für Variablen verwendet werden, die von allen Instanzen gemeinsam genutzt werden, z. B. Zähler und Konstanten, oder um das Singleton-Entwurfsmuster zu implementieren. Es ist jedoch wichtig zu bedenken, dass der Wert einer statischen Variablen von allen Instanzen einer Klasse gemeinsam genutzt wird, sodass Änderungen an der Variablen, die von einer Instanz vorgenommen werden, für alle anderen Instanzen sichtbar sind.
Kommentare
  • Beliebt
  • Neu
  • Alt
Du musst angemeldet sein, um einen Kommentar schreiben zu können
Auf dieser Seite gibt es noch keine Kommentare