HOWTO · Java

Was bedeutet Instanziieren in Java

Dieser Artikel behandelt das Thema Instanziierung in Java.

Auf dieser Seite

In Java bedeutet das Instanziieren einer Klasse, eines ihrer Objekte zu erzeugen. new erzeugt das Objekt und gibt eine Referenz zurück, die Sie speichern und verwenden können.

Was bedeutet es, eine Klasse in Java zu instanziieren?

Eine Klasse in Java zu instanziieren bedeutet, ein Objekt zu erzeugen, das eine Instanz dieser Klasse ist. Eine Klasse legt fest, welche Felder und Methoden ihre Objekte haben können. Ein Objekt ist eine konkrete Instanz mit eigenen Feldwerten. Eine Variable wie car enthält eine Referenz auf dieses Objekt. Über die Referenz können Sie auf seine Felder und Methoden zugreifen.

Wie new ein Objekt erzeugt und ein Konstruktor es initialisiert

Dieses Beispiel erzeugt ein Car-Objekt, speichert dessen Referenz in car und ruft eine Methode darauf auf:

public class Car {
    private final String model;
    private final String color;

    Car(String model, String color) {
        this.model = model;
        this.color = color;
    }

    void display() {
        System.out.println("Car model: " + model + ", Color: " + color);
    }

    public static void main(String[] args) {
        Car car = new Car("Toyota", "Red");
        car.display();
    }
}

Der Ausdruck new Car("Toyota", "Red") erzeugt eine Car-Instanz und ruft ihren Konstruktor mit zwei Argumenten auf. Der Ausdruck liefert eine Referenz, die durch die Zuweisung in car gespeichert wird. Ein Konstruktor trägt den Namen der Klasse und hat keinen Rückgabetyp. Er kann seine Parameter verwenden, um die Felder des neuen Objekts einzurichten. Das Programm gibt Modell und Farbe über die Referenz aus.

Eine Klasse benötigt keinen ausdrücklich geschriebenen Konstruktor. Java stellt nur dann einen parameterlosen Standardkonstruktor bereit, wenn die Klasse selbst keinen Konstruktor deklariert. Sobald Sie einen Konstruktor mit Parametern deklarieren, fügt Java diesen Standardkonstruktor nicht zusätzlich hinzu.

Eine abstrakte Klasse kann nicht direkt instanziiert werden, da sie Methoden enthalten kann, deren Implementierung Unterklassen überlassen bleibt. Sie können stattdessen eine konkrete Unterklasse instanziieren, die diese Implementierungen bereitstellt.

Wie Objekte ihren Zustand speichern und Instanzmethoden verwenden

Jedes Objekt hat eigene Werte für seine Instanzfelder. So können zwei Car-Objekte unterschiedliche Modelle und Farben speichern, obwohl beide dieselbe in Car definierte Methode display() verwenden. Instanzmethoden arbeiten mit dem konkreten Objekt, auf das beim Aufruf verwiesen wird: Bei car.display() liest die Methode die Felder dieses Autos aus. Ein weiteres Objekt zu erzeugen, gibt Ihnen einen zusätzlichen Satz von Instanzwerten, statt die Werte des ersten Objekts zu ändern.

Instanziierung und Initialisierung in Java

Instanziierung bedeutet, ein Objekt zu erzeugen. Initialisierung bedeutet, seinen Anfangszustand festzulegen. Die Schritte hängen zusammen, sind aber nicht gleichbedeutend: Bei der Objekterzeugung initialisiert Java die Instanzfelder mit ihren Standardwerten. Anschließend können Feldinitialisierer und der Konstruktor sinnvollere Werte setzen. Auch spätere Zuweisungen können den Zustand des Objekts ändern.

Im Beispiel ist new Car(...) der Instanziierungsausdruck, während der Car-Konstruktor die Anfangswerte für model und color zuweist. Ein Konstruktor ist eine Möglichkeit, ein Objekt zu initialisieren; dadurch werden „Instanziierung“ und „Initialisierung“ nicht zu austauschbaren Begriffen.