Java Static Method, Variable und Block mit Beispiel

Inhaltsverzeichnis:

Anonim

Die Statik kann sein:

  1. Statische Variablen
  2. Statische Methoden
  3. Statische Codeblöcke.

Schauen wir uns zunächst statische Variablen und statische Methoden an.

Was ist eine statische Variable in Java?

Statische Variable in Java ist eine Variable, die zur Klasse gehört und zu Beginn der Ausführung nur einmal initialisiert wird. Es ist eine Variable, die zur Klasse und nicht zum Objekt (Instanz) gehört. Statische Variablen werden zu Beginn der Ausführung nur einmal initialisiert. Diese Variablen werden zuerst initialisiert, bevor Instanzvariablen initialisiert werden.

  • Eine einzelne Kopie, die von allen Instanzen der Klasse gemeinsam genutzt werden soll
  • Auf eine statische Variable kann direkt über den Klassennamen zugegriffen werden und benötigt kein Objekt

Syntax :

< class-name>. 

Was ist eine statische Methode in Java?

Die statische Methode in Java ist eine Methode, die zur Klasse und nicht zum Objekt gehört. Eine statische Methode kann nur auf statische Daten zugreifen. Es ist eine Methode, die zur Klasse und nicht zum Objekt (Instanz) gehört. Eine statische Methode kann nur auf statische Daten zugreifen. Es kann nicht auf nicht statische Daten (Instanzvariablen) zugreifen.

  • Eine statische Methode kann nur andere statische Methoden aufrufen und keine nicht statische Methode daraus aufrufen.
  • Auf eine statische Methode kann direkt über den Klassennamen zugegriffen werden und benötigt kein Objekt
  • Eine statische Methode kann ohnehin nicht auf "this" - oder "super" -Schlüsselwörter verweisen

Syntax :

< class-name>. 

Hinweis: Die Hauptmethode ist statisch, da auf sie zugegriffen werden muss, damit eine Anwendung ausgeführt werden kann, bevor eine Instanziierung stattfindet.

Lernen wir die Nuancen der statischen Schlüsselwörter anhand einiger Übungen!

Beispiel: Aufrufen statischer Variablen und Methoden

Schritt 1) Kopieren Sie den folgenden Code in einen Editor

öffentliche Klasse Demo {public static void main (String args []) {Student s1 = neuer Student ();s1.showData ();Student s2 = neuer Student ();s2.showData ();//Student.b++;//s1.showData ();}}}}Klasse Student {int a; // auf Null initialisiertstatisch int b; // wird nur dann auf Null initialisiert, wenn die Klasse nicht für jedes erstellte Objekt geladen wird.Schüler(){// Konstruktor inkrementiert statische Variable bb ++;}}public void showData () {System.out.println ("Wert von a =" + a);System.out.println ("Wert von b =" + b);}}// public static void increment () {// a ++;//}}}

Schritt 2) Speichern und kompilieren Sie den Code. Führen Sie den Code als Java-Demo aus .
Schritt 3) Die erwartete Ausgabe wird unten angezeigt


Das folgende Diagramm zeigt, wie Referenzvariablen und Objekte erstellt werden und auf statische Variablen von den verschiedenen Instanzen zugegriffen wird.


Schritt 4) Mit der Syntax ClassName.Variable_Name kann von außerhalb der Klasse auf eine statische Variable zugegriffen werden . Kommentar Nr. 7 & 8 auskommentieren. Speichern, kompilieren und ausführen. Beobachten Sie die Ausgabe.

Value of a = 0Value of b = 1Value of a = 0Value of b = 2Value of a = 0Value of b = 3
Schritt 5) Kommentar 25,26 & 27 auskommentieren. Speichern, kompilieren und ausführen.
error: non-static variable a cannot be referenced from a static context a++;

Schritt 6) Fehler =? Dies liegt daran, dass es nicht möglich ist, über die statische Java-Klassenmethode " increment " auf die Instanzvariable " a " zuzugreifen .

Was ist statischer Block in Java?

Der statische Block ist ein Anweisungsblock innerhalb einer Java-Klasse, der ausgeführt wird, wenn eine Klasse zum ersten Mal in die JVM geladen wird. Ein statischer Block hilft beim Initialisieren der statischen Datenelemente , genau wie Konstruktoren beim Initialisieren von Instanzelementen helfen.

class Test{static {//Code goes here}}

Das folgende Programm ist das Beispiel eines statischen Java-Blocks.

Beispiel: Zugriff auf statische Blöcke

öffentliche Klasse Demo {statisch int a;statisch int b;statisch {a = 10;b = 20;}}public static void main (String args []) {System.out.println ("Wert von a =" + a);System.out.println ("Wert von b =" + b);}}}}

Sie erhalten folgende Ausgabe des Programms.

Value of a = 10Value of b = 20