Heim Java JavaBase Was ist Java-Statik?

Was ist Java-Statik?

Nov 13, 2019 pm 01:39 PM
java statisch

Was ist Java-Statik?

Was ist Java-Static?

Java-Static umfasst statische Variablen, statische Methoden und statische Initialisierungsblöcke Im Folgenden finden Sie eine detaillierte Erläuterung der statischen Aufladung. (Empfohlenes Tutorial: Java-Tutorial)

1. Was ist eine statische Variable?

Wie wir alle wissen, können wir mehrere solcher Variablen erstellen Bei einem Klassenobjekt hat jedes Objekt seine eigenen, voneinander unabhängigen Mitglieder.

Manchmal bevorzugen wir jedoch, dass alle Objekte dieser Klasse dasselbe Mitglied haben. Hier kommt die statische Aufladung ins Spiel!

In Java durch Statik geänderte Mitglieder werden als statische Mitglieder oder Klassenmitglieder bezeichnet. Es gehört zur gesamten Klasse, nicht zu einem Objekt, das heißt, es wird von allen Objekten der Klasse gemeinsam genutzt.

Auf statische Mitglieder kann direkt über den Klassennamen oder über den Objektnamen zugegriffen werden. Aufgrund der besonderen Art seiner Funktion wird natürlich empfohlen, Klassennamen für den Zugriff zu verwenden

Verwenden Sie statisch, um Variablen, Methoden und Codeblöcke zu ändern.

public class Test1 {
    // static修饰的变量为静态变量,所有类的对象共享hobby
    static String hobby = "Tedu";
    
    public static void main(String[] args) {
        // 静态变量可以直接使用类名来访问,无需创建对象
        System.out.println("通过类名访问hobby:" + Test1.hobby);
        // 创建类的对象
        Test1 t1 = new Test1();
        // 使用对象名访问静态变量
        System.out.println("使用对象名访hobby:" + t1.hobby);
        // 使用对象名的形式修改静态变量的值
        t1.hobby = "cjj";
        // 再次使用类名访问静态白变量,值已经被修改
        System.out.println("通过类名访问hobby:" + Test1.hobby);
    }
}
Nach dem Login kopieren

Laufendes Ergebnis:

通过类名访问hobby:Tedu
使用对象名访hobby:Tedu
通过类名访问hobby:cjj
Nach dem Login kopieren

Hinweis:

Statische Mitglieder gehören zur gesamten Klasse, bis das System Speicherplatz zuweist Die Ressourcen werden erst recycelt, nachdem die Klasse entladen wurde!

2. Statische Methoden, die von statischen

verwendet werden. Wie statische Variablen können wir auch statische modifizierte Methoden verwenden, die als statische Methoden oder Klassenmethoden bezeichnet werden.

Tatsächlich ist die Hauptmethode, die wir zuvor geschrieben haben, eine statische Methode

public class Test01 {
    //使用static关键字声明静态方法
    public static void print() {
        System.out.println("欢迎你:Cjj!");
    }
    
    public static void main(String[] args) {
        //直接使用类名调用静态方法
        Test01.print();
        //也可以通过对象名调用,当然更推荐使用类名调用
        Test01 t1 = new Test01();
        t1.print();
    }
}
Nach dem Login kopieren

Code kopieren

欢迎你:Cjj!
欢迎你:Cjj!
Nach dem Login kopieren

Hinweis:

1 Rufen Sie ähnliche Methoden in statischen Methoden auf. Statische Mitglieder in , aber nicht statische Mitglieder können nicht direkt aufgerufen werden. Beispiel:

Wenn Sie nicht statische Variablen in einer statischen Methode aufrufen möchten, können Sie ein Objekt der Klasse erstellen und dann über das Objekt auf die nicht statischen Variablen zugreifen. Beispiel:

2. In gewöhnlichen Mitgliedsmethoden können Sie direkt auf nicht statische Variablen zugreifen, z. B.:

3 In statischen Methoden aufgerufen. Greifen Sie über Objekte auf nicht statische Methoden zu. Zum Beispiel:

public class Test01 {
    String name = "Cjj"; //静态成员变量
    static String hobby = "study"; //非静态成员变量
    
    //普通成员方法
    public void print1() {
        System.out.println("普通成员方法~~~"); 
    }
    
    //静态成员方法
    public static void print2() {
        System.out.println("静态成员方法~~~");
    }
    
    public static void main(String[] args) {
        //普通成员方法必须通过对象来调用
        Test01 t1 = new Test01();
        t1.print1();
        //可以直接调用静态方法
        print2();
    }
}
Nach dem Login kopieren

3. Statischer Initialisierungsblock, der von statischen

Datenzuweisung verwendet wird, kann über einen Initialisierungsblock in Java erfolgen. Zum Beispiel:

public class Test02 {
    String name; // 定义一个成员变量
    //通过初始化块为成员变量赋值
    {
        name = "cjj";
    }
}
Nach dem Login kopieren

Führen Sie diese Codeblöcke nacheinander aus. Wenn ein Initialisierungsblock mit Static geändert wird, wird er als statischer Initialisierungsblock bezeichnet.

Hinweis:

Der statische Initialisierungsblock wird nur ausgeführt, wenn die Klasse geladen wird, und wird nur einmal ausgeführt. Gleichzeitig kann der statische Initialisierungsblock nur Werte zuweisen statische Variablen und können keine gewöhnlichen Mitgliedsvariablen initialisieren.

Schauen wir uns einen Code an:

public class Test02 {
    int num1;
    int num2;
    static int num3;
    public Test02() {// 构造方法
        num1 = 11;
        System.out.println("通过构造方法为变量num1赋值");
    }
    { // 初始化块
        num2 = 22;
        System.out.println("通过初始化块为变量num2赋值");
    }
    static {// 静态初始化块
        num3 = 33;
        System.out.println("通过静态初始化块为静态变量num3赋值");
    }
    
    public static void main(String[] args) {
        Test02 t1 = new Test02(); //创建对象
        System.out.println("num1:" + t1.num1);
        System.out.println("num2:" + t1.num2);
        System.out.println("num3:" + num3);
        
    }
}
Nach dem Login kopieren

Laufergebnis:

通过静态初始化块为静态变量num3赋值
通过初始化块为变量num2赋值
通过构造方法为变量num1赋值
num1:11
num2:22
num3:33
Nach dem Login kopieren

Durch die Ausgabe des Ergebnisses können wir sehen, dass der statische Initialisierungsblock zuerst ausgeführt wird, wenn Das Programm wird ausgeführt, und dann wird der normale Initialisierungsblock ausgeführt, und die Konstruktormethode wird zuletzt ausgeführt. Da der statische Initialisierungsblock beim Laden der Klasse nur einmal ausgeführt wird, wird der statische Initialisierungsblock nicht ausgeführt, wenn das Objekt hello2 erneut erstellt wird.

Die Klasse wird bei der ersten Verwendung geladen und nach dem Laden nicht entfernt.

Das obige ist der detaillierte Inhalt vonWas ist Java-Statik?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Quadratwurzel in Java Quadratwurzel in Java Aug 30, 2024 pm 04:26 PM

Leitfaden zur Quadratwurzel in Java. Hier diskutieren wir anhand eines Beispiels und seiner Code-Implementierung, wie Quadratwurzel in Java funktioniert.

Perfekte Zahl in Java Perfekte Zahl in Java Aug 30, 2024 pm 04:28 PM

Leitfaden zur perfekten Zahl in Java. Hier besprechen wir die Definition, Wie prüft man die perfekte Zahl in Java?, Beispiele mit Code-Implementierung.

Zufallszahlengenerator in Java Zufallszahlengenerator in Java Aug 30, 2024 pm 04:27 PM

Leitfaden zum Zufallszahlengenerator in Java. Hier besprechen wir Funktionen in Java anhand von Beispielen und zwei verschiedene Generatoren anhand ihrer Beispiele.

Weka in Java Weka in Java Aug 30, 2024 pm 04:28 PM

Leitfaden für Weka in Java. Hier besprechen wir die Einführung, die Verwendung von Weka Java, die Art der Plattform und die Vorteile anhand von Beispielen.

Armstrong-Zahl in Java Armstrong-Zahl in Java Aug 30, 2024 pm 04:26 PM

Leitfaden zur Armstrong-Zahl in Java. Hier besprechen wir eine Einführung in die Armstrong-Zahl in Java zusammen mit einem Teil des Codes.

Smith-Nummer in Java Smith-Nummer in Java Aug 30, 2024 pm 04:28 PM

Leitfaden zur Smith-Zahl in Java. Hier besprechen wir die Definition: Wie überprüft man die Smith-Nummer in Java? Beispiel mit Code-Implementierung.

Fragen zum Java Spring-Interview Fragen zum Java Spring-Interview Aug 30, 2024 pm 04:29 PM

In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

Brechen oder aus Java 8 Stream foreach zurückkehren? Brechen oder aus Java 8 Stream foreach zurückkehren? Feb 07, 2025 pm 12:09 PM

Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

See all articles