Heim  >  Artikel  >  Java  >  Detaillierte Einführung in das statische Schlüsselwort in Java

Detaillierte Einführung in das statische Schlüsselwort in Java

零下一度
零下一度Original
2017-06-25 11:03:521704Durchsuche

Das Schlüsselwort static hat in Java zwei Hauptfunktionen:

Erstens: Zuweisen eines einzelnen Speicherplatzes für einen bestimmten Datentyp oder ein bestimmtes Objekt, was sich vom Erstellen eines Objekts unterscheidet . Die Zahl spielt keine Rolle.

Zweitens Die Implementierung einer Methode oder eines Attributs ist mit der Klasse und nicht mit dem Objekt verknüpft.

Einfach ausgedrückt umfasst statisch in der Java-Sprache hauptsächlich Nutzungssituationen in 5: Mitgliedsvariablen, Mitgliedsmethoden, Codeblöcke, innere Klassen und statische Importpakete.

Grundlegende Verwendung:

  1. statische Änderung Mitgliedsvariable : Diese Mitgliedsvariable ist eine Klassenvariable und kann direkt über ClassName.attributeName ohne An referenziert werden Instanz einer neuen Klasse.

  2. statische Änderung Mitgliedsmethode : Diese Methode gehört zur Methode der Klasse und kann direkt über ClassName.methodName referenziert werden, ohne dass eine neue Instanz der Klasse erforderlich ist Klasse.

  3. statische Änderung Codeblock : Wird nur einmal ausgeführt, wenn die Klasse initialisiert wird, und die Ladereihenfolge stimmt strikt mit der Definitionsreihenfolge der statischen Ressourcen in der Klasse überein ; static Ein Codeblock kann den danach definierten statischen Variablen Werte zuweisen, aber nicht auf sie zugreifen. ;Codeblock der übergeordneten Klasse -> Codeblock der Unterklasse.

  4. statische Änderunginterne Klasse: statisch kann keine gewöhnlichen Klassen ändern, sondern nur interne Klassen, die durch statische Änderungen geändert werden: neue OuterClass.InnerClass().

  5. statischImportpaket : Syntax „import static java.lang.Math.*“, damit Math direkt im verwendet werden kann Bei statischen Methoden in einer Klasse ist es nicht erforderlich, den Klassennamen zu schreiben. Ich persönlich denke, dass es praktischer ist, wenn eine bestimmte Klasse häufig verwendet wird, aber es verringert die Lesbarkeit. Und es wird nicht empfohlen, * zu importieren statisch modifizierte Mitglieder Variablen und Mitgliedsmethoden

 

Mehrere Schlussfolgerungen:

Ausgabe: Schlussfolgerung 1

: Statische Ressourcen gehören zur Klasse, sind aber unabhängig von der Klasse Die Klasse wird initialisiert (frühzeitig für neu). Sie können beispielsweise die statischen Ressourcen einer Klasse über Class.forName("xxx") laden, aber es gibt keine neuen.
/**
 *
 * Created by ascend on 2017/6/9 13:51. */public class Test {public static void main(String[] args) throws ClassNotFoundException {
        Class.forName("net.liebao.test.A");
    }
}class A {static {
        System.out.println("A.static initializer");
    }public A() {
        System.out.println("A.A");
    }
}

A.static initializer
 

Schlussfolgerung 2: Auf statische Ressourcen (statische Mitgliedsvariablen, statische Mitgliedsmethoden, das Gleiche unten) kann nicht zugegriffen werden Nicht statische Ressourcen und nicht statische Ressourcen werden generiert, wenn sie neu sind, sodass nicht auf sie zugegriffen werden kann. Im Gegenteil, nicht statische Ressourcen können auf statische Ressourcen zugreifen.

 Schlussfolgerung 3

: Statische Ressourcen können auf statische Ressourcen zugreifen, aber Es ist zu beachten, dass statische Ressourcen den danach definierten statischen Ressourcen Werte zuweisen können, aber nicht auf die danach definierten statischen Ressourcen zugreifen können

Eine weitere häufige Verwendung besteht darin, Singletons mithilfe statischer Muster zu implementieren

Wir alle wissen, dass das Merkmal des Singleton-Musters darin besteht, dass die Klasse nur eine Instanz haben kann. Um diese Funktion zu erreichen, muss der Konstruktor der Klasse ausgeblendet werden Der Konstruktor wird als privat deklariert und stellt eine Methode zum Erstellen eines Objekts bereit. Da das konstruierte Objekt als privat deklariert ist, kann die Außenwelt ein Objekt dieses Typs nicht direkt erstellen. Sie kann das Objekt der Klasse nur über die Methode erhalten Um diesen Zweck zu erreichen, besteht die einzige Möglichkeit, diesen Zweck zu erreichen, darin, die Methode des Objekts als statisch zu deklarieren. Das Programmbeispiel lautet wie folgt:

Der obige Singleton-Modus ist der Hungrig-Man-Modus

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in das statische Schlüsselwort in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn