Instanz der Klasse

thor_norsk

Bekanntes Mitglied
Guten Abend,
Sie haben folgende Vereinbarung der Klasse Tier:

[CODE lang="java" title="Klasse Tier"]class Tier {
int groesse;


Tier(int groesse) {
this.groesse = groesse;
}
......
}[/CODE]

Was geschieht, wenn Sie eine neue Instanz der Klasse Tier mit der Anweisung

Tier keinesTier = new Tier();
erzeugen wollen? Begründen Sie Ihre Antwort.

Eigentlich wurde in dem Code eigener Konstruktor deklariert . Ich Weiß nicht, ob der Compiler trotzdem einen Standard - Konstruktor für den Instanz anlegt ???
 

thor_norsk

Bekanntes Mitglied
Also: Da man in der Aufgabestellung eigener Konstruktor deklariert hat, hat man jetzt ein Problem ? Also Instanzen kann man nur erzeugen, wenn man keinen eigenen Konstruktor wie in der Aufgabestellung deklariert ?
 

DrPils

Bekanntes Mitglied
Also Instanzen kann man nur erzeugen, wenn man keinen eigenen Konstruktor wie in der Aufgabestellung deklariert ?
Nein
Du kannst noch eine Instanz erzeugen, nur aber nicht mit dem parameterlosen Konstruktor.
Der Konstruktor Tier() existiert nun mal nicht, also kannst du genau den nicht aufrufen.
Du könntest eine Instanz noch mit Tier(42); erzeugen.[/CODE]
 

White_Fox

Top Contributor
Wenn die Klasse keinen Konstruktor enthält, dann denkt sich der Compiler einfach den parameterlosen Konstruktor aus.

Wenn die Klasse jedoch mindestens einen Konstruktor enthält, nimmt der Compiler nur das was er vorfindet. Ohne automatisch irgendwas zu erstellen.

Am lehrreichsten ist es jedoch immer noch, das einfach mal selber auszuprobieren. Und damit etwas rumzuspielen - gerne auch mal kaputtspielen.
 

temi

Top Contributor
Nein
Du kannst noch eine Instanz erzeugen, nur aber nicht mit dem parameterlosen Konstruktor.
Der Konstruktor Tier() existiert nun mal nicht, also kannst du genau den nicht aufrufen.
Du könntest eine Instanz noch mit Tier(42); erzeugen.[/CODE]
Oder du erstellst in deiner Klasse auch noch zusätzlich einen parameterlosen Konstuktor, wenn du meinst, dass du den dringend benötigst.
 

Neue Themen


Oben