Java static: Statische Methoden, Variablen und Klassen!

    Avatarbild von Perica Glavas
    Perica Glavas

    veröffentlicht am: 27.04.2022
    zuletzt aktualisiert am: 06.02.2023

    Java static Tutorial: So erstellst du statische Methoden, Klassen und Variablen in Java!

    Das Schlüsselwort Java static wird verwendet, um statische Methoden, statische Variablen und statische Klassen zu erstellen. Schauen wir uns nun an, wie wir das Java static Schlüsselwort verwenden können, um ebendiese Sachen realisieren zu können. Also, los geht’s!

    Wie können wir statische Methoden in Java erstellen?

    Die statischen Methoden in Java werden mit dem Schlüsselwort Java static erstellt. Diese Arten von Methoden gehören zu der Klasse, in der sie definiert sind. Deshalb werden die statischen Methoden in Java auch Klassenmethoden genannt.

    Schauen wir uns nun an, wie wir solch eine Methode erstellen können.

    Als erstes definieren wir eine statische Methode namens nachrichtAusgeben() in der Klasse Mitarbeiter:

    class Mitarbeiter {
      public static void nachrichtAusgeben() {
        System.out.println("Hi! Ich heisse Tim.");
      }
    }

    Im Anschluss rufen wir aus unserer Klasse Main innerhalb der public static void main String args-Methode die statische Methode nachrichtAusgeben auf!

    public class Main {
      public static void main(String[] args) {
        Mitarbeiter.nachrichtAusgeben();
      }
    }

    Beachte, dass wir kein Objekt der Klasse Mitarbeiter für den Zugriff auf die Methode nachrichtAusgeben() erstellt haben; stattdessen verwenden wir den Klassennamen und können direkt auf die Methode zugreifen ohne Objekte der Klasse Mitarbeiter zu erstellen!

    Wenn wir nun den obigen Code ausführen würden, würden wir folgende Ausgabe auf der Konsole erhalten:

    Wir verwenden out println innerhalb der nachrichtAusgeben-Methode, um uns die Informationen auf der Konsole ausgeben zu lassen.

    Wie können wir statische Variablen in Java erstellen?

    Wenn Objekte in Java erstellt werden, enthält jedes Objekt seine eigene Kopie der in der Klasse deklarierten Variablen.

    Im folgenden Beispiel erstellen wir zwei Objekte der Klasse „Mitarbeiter“ mit den Namen: mitarbeiterEins und mitarbeiterZwei:

    class Mitarbeiter {
      int alter;
    }
    public class Main {
      public static void main(String[] args) {
        Mitarbeiter mitarbeiterEins = new Mitarbeiter();
        Mitarbeiter mitarbeiterZwei = new Mitarbeiter();
      }
    }

    So weit so gut. Wir haben nun zwei Objekte, welche jeweils einen anderen Wert in die Objekteigene Variable alter speichern können. Wir können aber Java static verwenden, um einen Wert innerhalb einer statischen Variable in der Klasse zu speichern, welche von den Objekten nicht direkt verändert werden kann und für alle Objekte denselben Wert hält.

    class Mitarbeiter {
      static int mitarbeiterAnzahl;
    }
    public class Main {
      public static void main(String[] args) {
        Mitarbeiter.mitarbeiterAnzahl = 20;
        System.out.println("So viele Mitarbeiter haben wir: " + Mitarbeiter.mitarbeiterAnzahl);
      }
    }

    Wenn wir nun den Code ausführen würden, würden wir folgende Konsolenausgabe erzeugen:

    An vielen Stellen lohnt es sich jedoch Konstanten anstelle von statischen Variablen zu verwenden!

    Wie du wahrscheinlich merkst, macht es nur Sinn Variablen als statisch zu deklarieren, wenn der Wert für alle Objekte der Klasse gleich sein soll. Das könnte beispielsweise für die Mitarbeiteranzahl oder ähnliche Informationen verwendet werden. Jedoch macht es für das Alter eines Mitarbeiters keinen Sinn, da jeder Mitarbeiter höchstwahrscheinlich ein anderes Alter hat.

    Wie können wir static Blocks / Statements in Java erstellen?

    Wenn du einige Berechnungen zur Initialisierung der statischen Variablen durchführen möchtest, deklariere einen statischen Block und füge die erforderliche Funktionalität hinzu. Dieser statische Block wird einmal ausgeführt, wenn er in den Speicher geladen wird.

    In unserer Klasse Mitarbeiter fügen wir zwei statische Variablen hinzu, name und alter. Dann definieren wir zwei statische Blöcke, um die Variablen name auf Alex und die Variable alter auf 30 zu initialisieren:

    class Mitarbeiter {
      static String name;
      static int alter;
    
      static {
        System.out.println("Initialiserung der statischen Variable name");
        name = "Alex";
      }
    
      static {
        System.out.println("Initialiserung der statischen Variable alter");
        alter = 30;
      }
    
      static void informationenAufrufen() {
        System.out.println("Name des Mitarbeiters: " + name);
        System.out.println("Alter des Mitarbeiters: " + alter);
    
      }
    }

    Im Anschluss rufen wir nun die statische Methode informationenAufrufen() innerhalb der main-Methode auf.

    public class Main {
      public static void main(String[] args) {
        Mitarbeiter.informationenAufrufen();
      }
    }

    Wenn wir nun den Code ausführen, erhalten wir folgende Ausgabe, welche Zeile für Zeile die statischen Blöcke ausführt. Schauen wir uns die daraus resultierende Konsolenausgabe an:

    Bei Fragen oder andere Anliegen kannst du dich gerne an das codegree-Team wenden!

    Wie können wir innere statische Klassen in Java erstellen?

    Wenn eine Klasse innerhalb einer anderen Java-Klasse erstellt wird, wird sie als innere oder auch verschachtelte Klasse bezeichnet. Um eine statische innere Klasse zu erstellen, musst du den Modifikator static vor dem Klassennamen angeben.

    Im folgenden Beispiel ist die Klasse Mitarbeiter eine statische innere Klasse der äußeren Klasse MeineKlasse:

    public class MeineKlasse {
      private static String name = "Simon";
      private static int alter = 30;
    
      static class Mitarbeiter {
        public void informationenAufrufen() {
          System.out.println("Name des Mitarbeiters: " + name);
          System.out.println("Alter des Mitarbeiters: " + alter);
        }
      }
    }

    Die Methode informationenAufrufen() ist eine nicht-statische Methode der Klasse Mitarbeiter. Um sie aufzurufen, müssen wir also eine Instanz der Klasse Mitarbeiter erstellen:

    public static void main(String[] args) {
      MeineKlasse.Mitarbeiter mitarbeiterSimon = new MeineKlasse.Mitarbeiter();
      mitarbeiterSimon.informationenAufrufen();
    }

    Wenn nun die Methode informationenAufrufen() ausgeführt wird, greift sie auf die Werte der statischen Variablen name und alter zu und gibt sie auf der Konsole aus:

    Wir könnten auch beispielsweise eine Klasse Auto erstellen mit einer statischen Variable PS Zahl

    Wie du siehst, musst du, um auf die innere Klasse zugreifen zu können, zuerst den äußeren Klassennamen angeben, gefolgt von einem Punkt und dem inneren (in unserem Falle statischen) Klassennamen.

    Zusammenfassung: Java static

    Der Java static Modifikator wird hauptsächlich verwendet, um statische Methoden, statische Variablen, statische Blöcke und statische innere Klassen zu erstellen. Wenn ein statisches Element in einer Java-Klasse deklariert wird, können alle ihre Instanzen es gemeinsam nutzen, aber du kannst seinen Wert nicht ändern. Außerdem kann auf ein statisches Mitglied zugegriffen werden, ohne ein Objekt der entsprechenden Java-Klasse zu erstellen.

    😩 Gelangweilt von den Udemy & YouTube-Tutorials?!

    Lerne spielerisch Java und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.

    TP Star TP Star TP Star TP Star TP Star

    "Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."

    - Lennart Sparbier

    100% kostenlos registrieren · keine Kreditkarte notwendig

    👋 Wir warten bereits auf dich!

    Lerne das, was du wirklich brauchst.

    Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.

    Logo von Python
    Logo von PyTorch
    Logo von Pandas
    Logo von Matplotlib
    Logo von Java
    Logo von NumPy
    Mehr erfahren

    100% kostenlos registrieren · keine Zahlungsdaten notwendig