Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
VererbungKleiner Fehler, weiß aber nicht warum und wo
ich habe folgenden Code und verstehe nicht warum dieser ($)§(%)$ nicht Funktioniert :noe:
Java:
class Autor{
private String name;
private String vorname;
public Autor(String name, String vorname){
this.name=name;
this.vorname=vorname;
}
public String getName(){
return name;
}
public String getVorname(){
return vorname;
}
}
Java:
class Buch{
private Autor autor = new Autor("","");
private String titel;
private double preis;
public Buch(Autor autor, String titel, double preis){
this.autor=autor;
this.titel=titel;
this.preis=preis;
}
public Buch(Autor autor, String titel){
this.autor=autor;
this.titel=titel;
}
public void setPreis(double preis){
this.preis=preis;
}
public Autor getAutor(){
return autor;
}
public String getTitel(){
return titel;
}
public double getPreis(){
return preis;
}
}
Java:
class BuchApp{
Buch b1 = new Buch("Jones", "Peter", "JAVA", 35.00);
Buch b2 = new Buch("Jones", "Peter", "JAVA2.0");
System.out.println("Buch b1:\n\tAutor: "+b1.getVorname()+", "+b1.getNachname()+"\n\tTitel: "+b1.getTitel()+"\n\tPreis: "+b1.getPreis());
}
Bei der Initialisierung scheint der Fehler aufzutreten...
BuchApp lässt sich nicht compilieren...
Ich könnte dir jetzt sgen wo der Fehler liegt (Klasse BuchApp), aber bevor du nicht den Compilefehler schreibst bleib ich stumm!
Aber vielleicht kommst du auch selber drauf? Schau dir mal BuchApp an, was könnte da nicht stimmen? Welche Funktion muss die Startklasse haben?
Das Hauptprogramm, es ist static und heisst M**n
Ganz ehrlich, mir passiert das auch manchmal, dann frage ich mich immer, was ist den jetzt los, warum gibt das einen Fehler das stimmt doch und irgenwann bemerkte ich dass ich das oben erwähnte vergessen habe
Das Hauptprogramm, es ist static und heisst M**n
Ganz ehrlich, mir passiert das auch manchmal, dann frage ich mich immer, was ist den jetzt los, warum gibt das einen Fehler das stimmt doch und irgenwann bemerkte ich dass ich das oben erwähnte vergessen habe
Du Verwendest in der Klasse Buch ein Objekt der Klasse Autor, oder besser gesagt, Du speicherst eine Reperenz vom Typ Autor. Du kannst im Konstruktor von Buch nicht Name und Vorname des Autor übergeben, denn Dein Konstruktor erwartet eine Referenz auf ein Objekt in dem diese Informationen stehen. Natürlich könntest Du jetzt den Konstruktor dahingehend ändern, aber Du könntest auch einfach ein Objekt Autor machen (new) und es dem Kontruktor übergeben.
Der gleiche Irrtum passiert Dir beim Ausdrucken der Daten weiter unten.
Java:
class BuchApp{
public static void main(String[] args) {
Buch b1 = new Buch(new Autor("Jones", "Peter"), "JAVA", 35.00);
Buch b2 = new Buch(new Autor("Jones", "Peter"), "JAVA2.0");
System.out.println("Buch b1:\n\tAutor: "+b1.getAutor().getVorname()+", "+b1.getAutor().getName()+"\n\tTitel: "+b1.getTitel()+"\n\tPreis: "+b1.getPreis());
}
}
Ich habe jetzt noch einen lehren Konstruktor Buch und eine Methode Inventur hinzugefügt...
Java:
class Buch{
private Autor autor = new Autor("","");
private String titel;
private double preis;
public Buch(Autor autor, String titel, double preis){
this.autor=autor;
this.titel=titel;
this.preis=preis;
}
public Buch(Autor autor, String titel){
this.autor=autor;
this.titel=titel;
}
public Buch(){
}
public void setPreis(double preis){
this.preis=preis;
}
public Autor getAutor(){
return autor;
}
public String getTitel(){
return titel;
}
public double getPreis(){
return preis;
}
public void inventur(){
System.out.println("Autor: "+getAutor()+"Titel: "+getTitel()+"Preis: "+getPreis());
}
}
Java:
class BuchApp{
public static void main(String args []){
Buch b1 = new Buch("Jones", "Peter", "JAVA", 35.00);
Buch b2 = new Buch("Jones", "Peter", "JAVA2.0");
b1.inventur();
b2.inventur();
}
}
Du Verwendest in der Klasse Buch ein Objekt der Klasse Autor, oder besser gesagt, Du speicherst eine Reperenz vom Typ Autor. Du kannst im Konstruktor von Buch nicht Name und Vorname des Autor übergeben, denn Dein Konstruktor erwartet eine Referenz auf ein Objekt in dem diese Informationen stehen. Natürlich könntest Du jetzt den Konstruktor dahingehend ändern, aber Du könntest auch einfach ein Objekt Autor machen (new) und es dem Kontruktor übergeben.
Der gleiche Irrtum passiert Dir beim Ausdrucken der Daten weiter unten.
Java:
class BuchApp{
public static void main(String[] args) {
Buch b1 = new Buch(new Autor("Jones", "Peter"), "JAVA", 35.00);
Buch b2 = new Buch(new Autor("Jones", "Peter"), "JAVA2.0");
System.out.println("Buch b1:\n\tAutor: "+b1.getAutor().getVorname()+", "+b1.getAutor().getName()+"\n\tTitel: "+b1.getTitel()+"\n\tPreis: "+b1.getPreis());
}
}