JavaRush /Java-Blog /Random-DE /Kaffeepause Nr. 142. Welche Rolle spielt das Schlüsselwor...

Kaffeepause Nr. 142. Welche Rolle spielt das Schlüsselwort static in Java?

Veröffentlicht in der Gruppe Random-DE
Quelle: FreeCodeCamp Das Schlüsselwort static kann in verschiedenen Teilen des Java-Codes wie Variablen, Methoden und statischen Blöcken verwendet werden. Heute erfahren wir genau, wie es in der Praxis angewendet werden kann. Kaffeepause Nr. 142.  Welche Rolle spielt das Schlüsselwort static in Java?  - 1Der Hauptzweck der Verwendung des Schlüsselworts static in Java besteht darin, Speicherplatz zu sparen. Wenn wir in einer Klasse eine Variable erstellen, auf die andere Klassen zugreifen, müssen wir zunächst eine Instanz der Klasse erstellen und dann jeder Instanz der Variablen einen neuen Wert zuweisen. Dies ist notwendig, damit die Werte der neuen Variablen für alle neuen Klassen/Objekte gleich sind. Wenn wir jedoch statische Variablen erstellen, bleibt ihr Wert in allen anderen Klassen konstant und wir müssen keine Instanz erstellen, um die Variable zu verwenden. Auf diese Weise erstellen wir die Variable einmal, sodass der Speicher nur einmal zugewiesen wird. Anhand einiger Beispiele in diesem Artikel werden Sie dies besser verstehen.

So erstellen Sie eine statische Variable in Java

Um zu verstehen, wie das Schlüsselwort static beim Erstellen von Variablen verwendet wird, schauen wir uns die übliche Methode zum Erstellen von Variablen an, die von jeder Instanz einer Klasse gemeinsam genutzt werden.
class Student {
    String studentName;
    String course;
    String school;

    public static void main(String[] args) {
        Student Student1 = new Student();
        Student Student2 = new Student();

        Student1.studentName = "Ihechikara";
        Student1.course = "Data Visualization";
        Student1.school = "freeCodeCamp";

        Student2.studentName = "John";
        Student2.course = "Data Analysis with Python";
        Student2.school = "freeCodeCamp";

        System.out.println(Student1.studentName + " " + Student1.course + " " + Student1.school + "\n");
        // Ihechikara Data Visualization freeCodeCamp
        System.out.println(Student2.studentName + " " + Student2.course + " " + Student2.school);
        // John Data Analysis with Python freeCodeCamp
    }
}
Ich werde Schritt für Schritt erklären, was im obigen Code passiert ist. Wir haben eine Student- Klasse mit drei Variablen erstellt: studentName , course und school . Anschließend haben wir zwei Instanzen der Student- Klasse erstellt :
Student Student1 = new Student();
Student Student2 = new Student();
Die erste Instanz ist Student1 , die Zugriff auf in ihrer Klasse erstellte Variablen hat und die folgenden Werte hat:
Student1.studentName = "Ihechikara";
Student1.course = "Data Visualization";
Student1.school = "freeCodeCamp";
Die zweite Instanz hatte folgende Bedeutung:
Student2.studentName = "John";
Student2.course = "Data Analysis with Python";
Student2.school = "freeCodeCamp";
Wenn Sie genau hinschauen, werden Sie feststellen, dass beide Schüler den gleichen Schulnamen haben – „freeCodeCamp“. Aber was wäre, wenn wir 100 Schüler für dieselbe Schule erstellen müssten? Das bedeutet, dass wir die Variable 100 Mal mit demselben Wert initialisieren und jedes Mal neuen Speicher zuweisen. Für manche mag das kein Problem sein, aber in einer großen Codebasis kann es das Programm erheblich verlangsamen. Um dieses Problem zu lösen, verwenden wir das Schlüsselwort static, um die Variable school zu erstellen . Danach können alle Instanzen der Klasse diese Variable verwenden. Etwas wie das:
class Student {
    String studentName;
    String course;
    static String school;

    public static void main(String[] args) {
        Student Student1 = new Student();
        Student Student2 = new Student();


        Student1.studentName = "Ihechikara";
        Student1.course = "Data Visualization";
        Student1.school = "freeCodeCamp";


        Student2.studentName = "John";
        Student2.course = "Data Analysis with Python";

        System.out.println(Student1.studentName + " " + Student1.course + " " + Student1.school + "\n");
        // Ihechikara Data Visualization freeCodeCamp
        System.out.println(Student2.studentName + " " + Student2.course + " " + Student2.school);
        // John Data Analysis with Python freeCodeCamp
    }
}
In diesem Code haben wir eine statische Variable namens school erstellt . Beachten Sie, dass das Schlüsselwort static vor dem Datentyp und dem Variablennamen steht: static String school = "freeCodeCamp"; . Wenn wir nun eine neue Instanz unserer Klasse erstellen, müssen wir die Schulvariable nicht für jede Instanz initialisieren. In unserem Code haben wir einer Variablen nur in der ersten Instanz einen Wert zugewiesen, der dann von der nächsten Instanz geerbt wurde. Beachten Sie, dass eine Änderung des Werts einer statischen Variablen an einer beliebigen Stelle im Code den Wert in anderen Teilen des Codes überschreibt, in denen sie zuvor deklariert wurde. Daher sollten Sie das Schlüsselwort static nur für Variablen verwenden, die im Programm konstant bleiben sollen. Sie können einer Variablen auch beim Erstellen einen Wert zuweisen, sodass Sie ihn beim Instanziieren der Klasse nicht erneut deklarieren müssen: static String school = "freeCodeCamp"; . Folgendes erhalten Sie, wenn Sie diese Methode verwenden:
class Student {
    String studentName;
    String course;
    static String school = "freeCodeCamp";

    public static void main(String[] args) {
        Student Student1 = new Student();
        Student Student2 = new Student();


        Student1.studentName = "Ihechikara";
        Student1.course = "Data Visualization";

        Student2.studentName = "John";
        Student2.course = "Data Analysis with Python";

        System.out.println(Student1.studentName + " " + Student1.course + " " + Student1.school + "\n");
        // Ihechikara Data Visualization freeCodeCamp
        System.out.println(Student2.studentName + " " + Student2.course + " " + Student2.school);
        // John Data Analysis with Python freeCodeCamp
    }
}
Jetzt erfahren Sie, wie Sie statische Variablen mithilfe statischer Blöcke initialisieren.

So erstellen Sie eine statische Methode in Java

Bevor wir uns das Beispiel ansehen, müssen Sie Folgendes über statische Methoden in Java wissen:
  • Statische Methoden können nur auf statische Variablen zugreifen und diese ändern.
  • Statische Methoden können aufgerufen/verwendet werden, ohne eine Instanz der Klasse zu erstellen.
Hier ist ein Beispiel, das Ihnen das Verständnis erleichtern soll:
class EvenNumber {

    static int evenNumber;

    static void incrementBy2(){
        evenNumber = evenNumber + 2;
        System.out.println(evenNumber);
    }

    public static void main(String[] args) {
        incrementBy2(); // 2
        incrementBy2(); // 4
        incrementBy2(); // 6
        incrementBy2(); // 8
    }
}
Im obigen Code haben wir eine Ganzzahl ( evenNumber ) in einer Klasse namens EvenNumber erstellt . Unsere statische Methode heißt incrementBy2() . Diese Methode erhöht den Wert der Ganzzahl evenNumber und gibt ihren Wert aus. Ohne eine Instanz der Klasse zu erstellen, konnten wir die Methode incrementBy2() in der Hauptmethode des Programms aufrufen . Bei jedem Aufruf der Methode wurde evenNumber um 2 erhöht und ausgegeben. Sie können den Klassennamen auch mithilfe der Punktnotation an eine Methode anhängen, wenn Sie die Methode aufrufen: EvenNumber.incrementBy2(); . Jede statische Methode gehört zur Klasse, nicht zu Instanzen der Klasse.

So erstellen Sie einen statischen Block in Java

Statische Blöcke in Java ähneln Konstruktoren. Wir können sie verwenden, um statische Variablen zu initialisieren. Sie werden vom Compiler vor der Hauptmethode ausgeführt .
class Block {

    static int year;

    static {
        year = 2022;
        System.out.println("This code block got executed first");
    }

    public static void main(String[] args) {

        System.out.println("Hello World");
        System.out.println(year);
    }
}
Im obigen Code haben wir eine statische Ganzzahlvariable year erstellt . Anschließend haben wir es in einem statischen Block initialisiert:
static {
        year = 2022;
        System.out.println("This code block got executed first");
    }
Wie Sie sehen, kann ein statischer Block mit dem Schlüsselwort static gefolgt von geschweiften Klammern erstellt werden. Im statischen Block unseres Codes haben wir die Jahresvariable mit dem Wert 2022 initialisiert. Wir haben auch etwas Text ausgedruckt: „Dieser Codeblock wurde zuerst ausgeführt.“ In der Hauptmethode haben wir „Hello World“ und eine statische Variable „ year“ gedruckt . In der Konsole wird der Code in dieser Reihenfolge ausgeführt:
Dieser Codeblock wurde zuerst in Hello World 2022 ausgeführt
Dies zeigt deutlich, wie der Code im statischen Block zuerst ausgeführt wird, bevor die Hauptmethode ausgeführt wird .

Abschluss

In diesem Artikel haben wir über das Schlüsselwort static in Java gesprochen. Dies ist ein Schlüsselwort, das uns grundsätzlich dabei hilft, den Speicher in in Java geschriebenen Programmen zu optimieren. Wir haben auch anhand von Beispielen gesehen, wie man statische Variablen und Methoden erstellt. Abschließend haben wir über statische Blöcke gesprochen, mit denen statische Variablen initialisiert werden können. Statische Blöcke werden vor der Hauptmethode ausgeführt. Viel Spaß beim Codieren!
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION