Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Java static erklärt: Variablen, Methoden und Blöcke – Praxisbeispiele

In Java tritt das static-Schlüsselwort in drei unterschiedlichen Kontexten auf: statische Variablen, statische Methoden und statische Blöcke. Jeder spielt eine einzigartige Rolle im Lebenszyklus einer Klasse und ihrer Instanzen.

Statische Variablen in Java

  • Es existiert nur eine Kopie, die von allen Instanzen geteilt wird.
  • Direkt über Klassenname.variablenName zugänglich, ohne ein Objekt zu erstellen.
  • Wird vor allen Instanzfeldern initialisiert.

Syntax:

public static int count;

Statische Methoden in Java

Statische Methoden gehören zur Klasse und nicht zu einer bestimmten Instanz. Sie können aufgerufen werden, ohne ein Objekt zu erstellen, und können nur auf statische Daten zugreifen.

  • Können andere statische Methoden aufrufen, aber keine Instanzmethoden.
  • Werden mit Klassenname.methodeName() aufgerufen.
  • Können this oder super nicht verwenden, da sie an keine Instanz gebunden sind.

Alle main-Methoden sind statisch, damit die JVM eine Anwendung starten kann, bevor Objekte existieren.

Praxisbeispiel: Statische Variablen und Methoden verwenden

Das folgende Programm demonstriert, wie ein statischer Zähler über mehrere Student-Objekte geteilt wird.

public class Demo {
    public static void main(String[] args) {
        Student s1 = new Student();
        s1.showData();
        Student s2 = new Student();
        s2.showData();
        // Student.b++; // einkommentieren, um den Zähler zu ändern
        // s1.showData();
    }
}

class Student {
    int a; // Instanzvariable, Standardwert 0
    static int b; // statischer Zähler, einmalig auf 0 initialisiert

    Student() {
        b++; // Zähler bei jeder Student-Erstellung inkrementieren
    }

    public void showData() {
        System.out.println("Value of a = " + a);
        System.out.println("Value of b = " + b);
    }
}

Kompilieren und mit java Demo ausführen, um folgende Ausgabe zu sehen:

Java static erklärt: Variablen, Methoden und Blöcke – Praxisbeispiele

Das folgende Diagramm veranschaulicht, wie Referenzvariablen und Objekte erstellt werden und wie die statische Variable b über Instanzen geteilt wird.

Java static erklärt: Variablen, Methoden und Blöcke – Praxisbeispiele

Um von außerhalb der Klasse auf die statische Variable zuzugreifen, verwenden Sie Klassenname.variablenName:

Student.b++; // inkrementiert den geteilten Zähler
s1.showData(); // zeigt aktualisierten Wert von b

Der Versuch, von einem statischen Kontext auf eine Instanzvariable zuzugreifen, führt zu einem Kompilierfehler:

error: non-static variable a cannot be referenced from a static context
a++;

Dies geschieht, weil statische Methoden nicht direkt mit Instanzfeldern interagieren können.

Statische Blöcke in Java

Ein statischer Block ist ein spezieller Codeblock, der einmal ausgeführt wird, wenn die Klasse erstmals in die JVM geladen wird. Er eignet sich ideal für die Initialisierung statischer Felder, die mehr als eine einfache Zuweisung erfordern.

class Test {
    static int a;
    static int b;
    static {
        a = 10;
        b = 20;
    }
}

Das folgende Programm demonstriert die Ausgabe eines statischen Blocks:

public class Demo {
    static int a;
    static int b;
    static {
        a = 10;
        b = 20;
    }
    public static void main(String[] args) {
        System.out.println("Value of a = " + a);
        System.out.println("Value of b = " + b);
    }
}

Ausgabe:

Value of a = 10
Value of b = 20

Java

  1. Javas final-Schlüsselwort verstehen: Variablen, Methoden und Klassen
  2. Java instanceof-Operator: Ein umfassender Leitfaden
  3. Java statische verschachtelte Klassen verstehen: Nutzung, Unterschiede und Beispiele
  4. Java anonyme innere Klassen meistern: Definition, Syntax und praktische Beispiele
  5. Java Singleton-Pattern erklärt: Sichere Implementierung und Verwendung
  6. Java Reflection meistern: Klassen, Methoden und Felder zur Laufzeit inspizieren
  7. Java Exception Handling meistern: Try, Catch, Finally, Throw & Throws erklärt
  8. Java ObjectOutputStream meistern: Serialisierung, Methoden und praktische Beispiele
  9. Java Generics meistern – Wiederverwendbaren, typsicheren Code erstellen
  10. Java-Dateioperationen mit java.io meistern – Erstellen, Lesen, Schreiben & Löschen