Frage von 10MinuteMailAcc, 17

Wird der Konstruktor bei einem Programmstart ausgeführt (Java)?

Momentan denke ich, er wird nur ausgeführt, wenn man ein Objekt erstellt. Wie wird er bei einem Programmstart ausgeführt?

Antwort
von ceevee, 7

Wie wird er bei einem Programmstart ausgeführt?

Gar nicht. Manchmal kommt es vor, dass du Objekte im Programm nur dann und auch erst dann erzeugen willst, wenn du sie auch wirklich brauchst. Weil die Objekterzeugung lange dauert oder viel Speicher belegt, zum Beispiel. Deswegen wird der Konstruktor auch erst dann ausgeführt, wenn du ein Objekt tatsächlich erzeugst.

Antwort
von regex9, 10

Es kommt darauf an, um welchen Konstruktor es sich handelt.

Der statische Konstruktor wird wie alle statischen Inhalte zu Programmstart ausgeführt. In Java stellt er lediglich einen statischen Block (static initializer) dar:

static { /* .... */ }

Der dynamische Konstruktor hingegen wird ausgeführt, sobald das dazugehörige Objekt erzeugt wird.

Wenn ein Objekt erstellt wird, dessen Klasse von einer anderen Klasse erbt, wird der Basiskonstruktor automatisch mit aufgerufen. Das bedeutet, eine Klasse Affe, die von Tier ableitet, ruft bei Erstellen einer Instanz den Konstruktor von Tier innerhalb des eigenen Konstruktors Affe auf.

public class Tier {
  protected int anzahlArme;

public Tier(){ this.anzahlArme = 2; } }
public class Affe extends Tier {
public Affe(){ System.out.println(this.anzahlArme); } }
Affe affe = new Affe(); // Ausgabe: 2
Kommentar von 10MinuteMailAcc ,

public class Example {

public static void main(String[] args) {

        System.out.println("Hello world");

    }

}

Wird schon hier ein Konstruktor ausgeführt?

Kommentar von regex9 ,

Ja. Beim Erzeugen des Strings "Hello World" wird ein neues String-Objekt kreiert, also auch zwingend der dazugehörige Konstruktor aufgerufen. 

Antwort
von TUrabbIT, 10

Wie meinst du "Programmstart"? Der Konstruktor wird aufgerufen sobald du ein Objekt der Klasse erstellst.

Antwort
von gut4fr5g4, 14

er wird ausgeführt, sobald die instanz erstellt wird glaub ich

Keine passende Antwort gefunden?

Fragen Sie die Community