Konstruktor parameter

sousou

Bekanntes Mitglied
Hallo ihr lieben,

eine frage zu folgende Aufgabe:


a) heisst der Titel des Buches nach dem Aufruf von Buch meinBuch = new Buch();

Lösung: Meine Antwort: Niemand


b) Ergänzen Sie einen öffentlichen Konstruktor Buch ( String autor, String titel, String isbn)

Lösung:
Meine antwort:

Buch(String autor, String titel, String isbn){
this.autor = autor;
this.titel = titel;
this.isbn = isbn;
}


c) Wie heißt der Titel des Buchs nach der Ergänzung beim Aufruf von Buch meinBuch = New Buch();

-> Je nachdem welcher Wert die Parameter bei den aufruf eines Objekt haben. Wenn man jedoch von Buch meinBuch = New Buch(); ausgeht dann haben keine Variablen ein Wert oder?



Code:
public class Buch{


private String autor = "Niemand";
private String titel = "ohne Titel";
public String isbn = "";

public String getTitel(){
return titel;
}

public String getAutor(){
return Autor;
}


}

}

}


LG
 
Zuletzt bearbeitet:
Zu b): es ist ein öffentlicher Konstruktor gefragt, daher fehlt bei der Deklaration noch der Modifier public.
Zu c): das scheint mir eine Fangfrage zu sein: wenn man den Konstruktor mit den drei Parametern implementiert, dann gibt es ja eine explizite Konstruktordefinition. Und damit wird eben nicht mehr automatisch ein Default-Konstruktor angelegt. Dadurch dürfte der Ausdruck new Buch() überhaupt nicht mehr übersetzbar sein, so dass die Frage nach den Werte der Attribute müßig erscheint.
 
a) Der Titel heißt nicht "Niemand", das ist der Autor. Da bist du wohl in der Zeile verrutscht,
b) Ist fast richtig, aber wieso schreibst du vor "titel" nicht auch "this." anstatt "String "?
c) new Buch() kann man dann gar nicht mehr aufrufen, da der parameterlose Defaultkonstruktor nicht mehr existiert.
 
achso ja stimmt, bei a bin ich bei der Zeile verrutscht.


Also nochmal die richtigen Antworten sind also:

a)
ohne Titel

b)
public Buch(String autor, String titel, String isbn){
this.autor = autor;
this.titel = titel;
this.isbn = isbn;
}

c)

Bekomme ne Fehlermeldung die heisst can not find symbol also (Der Titel des Buches heisst dann also nich immer ohne Titel?)


Bitte um ne bestätigung der richtigkeit oder wie auch immer 🙂
 
Zuletzt bearbeitet:
Also nochmal die richtigen Antworten sind also:

a)
ohne Titel
Ja
b)
public Buch(String autor, String titel, String isbn){
this.autor = autor;
this.titel = titel;
this.isbn = isbn;
}
Ja - ist zumindest die naheliegenste Möglichkeit

c)

Bekomme ne Fehlermeldung die heisst can not find symbol also (Der Titel des Buches heisst dann also nich immer ohne Titel?)
Jein, du kannst kein Buch erstellen! Das heißt es gibt kein Buch. ein [c]Buch buch = new Buch()[/c] im Code würde zu einem Compilerfehler führen. Nur wenn du den Konstruktor mit 3 Parametern aufrufst kannst du wieder ein Buch erstellen. Es kann also nie wieder ein Buch mit dem Titel "ohne Titel" geben solange du nicht [c]Buch buch = new Buch("author","ohne Titel", "isbn"); [/c] aufrust, aber das ist ja doch was anderes. - Oder aber den parameterlosen Konstructor [c]public Buch()[/c] wieder einführst oder andere "hacks" machst.
 
Zuletzt bearbeitet von einem Moderator:

Neue Themen


Zurück
Oben