Hallo liebes Java-Forum,
ich habe ein Problem und zwar habe ich die Aufgabe ein Diagramm umzusetzen, dass ineinander Werte vererbt.
Dieses Diagramm wurde mit folgenen Code soweit umgesetzt:
[CODE lang="java" title="Vererbung"]public class Publication
{
public String author;
public String title;
public int year;
public float pricePerUnit;
Publication(String author, String title, int year, float pricePerUnit){
this.author = author;
this.title = title;
this.year = year;
this.pricePerUnit = pricePerUnit;
}
// Methode print
void print(){
Publication pub1 = new Publication("Max Muster","Titel" , 1980, 15.99f);
System.out.println("Autor: " + pub1.author);
System.out.println("Titel: " + pub1.title);
System.out.println("Erscheinungsjahr: " + pub1.year);
System.out.println("Preis: " + pub1.pricePerUnit);
}
void print2(){
Publication pub2 = new Publication("Abdul Alhazred", "Kitab al-Azif", 737, -1.0f);
System.out.println("Autor: " + pub2.author);
System.out.println("Titel: " + pub2.title);
System.out.println("Erscheinungsjahr: " + pub2.year);
System.out.println("Preis: " + pub2.pricePerUnit);
}
}
public class Article extends Publication {
public String journal = "ABC-Verlag";
public String journal2 = "arxiv.org";
Article(String author, String title, int year, float pricePerUnit,String journal) {
super(author, title, year, pricePerUnit);
this.journal = journal;
}
void print(){
Article article1 = new Article("Max Muster","Titel" , 1980, 13.22f,"ABC-Journal");
System.out.println("Artikel: ");
System.out.println("Autor: " + article1.author);
System.out.println("Titel: " + article1.title);
System.out.println("Erscheinungsjahr: " + article1.year);
System.out.println("Preis: " + article1.pricePerUnit);
System.out.println("Zeitschrift: " + article1.journal);
}
void print2(){
Article article2 = new Article("Eugene Vasiliev, Monica Valluri", " A new implementation of the Schwarzschild method for constructing observationally-driven dynamical models of galaxies of all morphological types ", 2019, 0.0f, "arxiv.org");
System.out.println("Artikel: ");
System.out.println("Autor: " + article2.author);
System.out.println("Titel: " + article2.title);
System.out.println("Erscheinungsjahr: " + article2.year);
System.out.println("Preis: " + article2.pricePerUnit);
System.out.println("Zeitschrift: " + article2.journal2);
}
//print
}
public class Book extends Publication {
public String publisher = "ABC-Verlag";
public String publisher2 = "Nikol";
Book(String author, String title, int year, float pricePerUnit,String publisher) {
super(author, title, year, pricePerUnit);
this.publisher = publisher;
}
//print
void print(){
Book buch1 = new Book("Max Muster","Titel" , 1980, 15.99f,"ABC-Verlag");
System.out.println("Buch: ");
System.out.println("Autor: " + buch1.author);
System.out.println("Titel: " + buch1.title);
System.out.println("Erscheinungsjahr: " + buch1.year);
System.out.println("Preis: " + buch1.pricePerUnit);
System.out.println("Verlag: " + buch1.publisher);
}
void print2(){
Book buch2 = new Book("Charles Darwin", "Über die Entstehung der Arten", 1859, 9.95f, "Nikol");
System.out.println("Buch: ");
System.out.println("Autor: " + buch2.author);
System.out.println("Titel: " + buch2.title);
System.out.println("Erscheinungsjahr: " + buch2.year);
System.out.println("Preis: " + buch2.pricePerUnit);
System.out.println("Verlag: " + buch2.publisher2);
}
}
[/CODE]
Nun soll laut dem Tester (Feedbackssystem innerhalb der Prüfungsumgebung) eine zweite Reihe an Werten ausgegben werden. Die zweite Reihe habe ich versucht mit den Codestücken zu schreiben, die im oben genannten Code jeweils mit "buch2.xxx", "article2.xxx" sowie mit "pub2.xxx" deklariert sind. Allerdings wird nur die Ausgabe angezeigt, die als "buch1.xxx", "article1.xxx" sowie mit "pub1.xxx" deklariert ist.
Das konkrete Problem wäre also, dass die zweite Eingabe quasi als die erste Eingabe erkannt wird, bzw. gar nicht erst stattfindet. Die Erste Ausgabe (buch1.xxx etc.) funktioniert tadellos. Ich komme jedoch nicht auf die Lösung.
Ich bedanke mich für jede Hilfe im Vorraus!
ich habe ein Problem und zwar habe ich die Aufgabe ein Diagramm umzusetzen, dass ineinander Werte vererbt.
Dieses Diagramm wurde mit folgenen Code soweit umgesetzt:
[CODE lang="java" title="Vererbung"]public class Publication
{
public String author;
public String title;
public int year;
public float pricePerUnit;
Publication(String author, String title, int year, float pricePerUnit){
this.author = author;
this.title = title;
this.year = year;
this.pricePerUnit = pricePerUnit;
}
// Methode print
void print(){
Publication pub1 = new Publication("Max Muster","Titel" , 1980, 15.99f);
System.out.println("Autor: " + pub1.author);
System.out.println("Titel: " + pub1.title);
System.out.println("Erscheinungsjahr: " + pub1.year);
System.out.println("Preis: " + pub1.pricePerUnit);
}
void print2(){
Publication pub2 = new Publication("Abdul Alhazred", "Kitab al-Azif", 737, -1.0f);
System.out.println("Autor: " + pub2.author);
System.out.println("Titel: " + pub2.title);
System.out.println("Erscheinungsjahr: " + pub2.year);
System.out.println("Preis: " + pub2.pricePerUnit);
}
}
public class Article extends Publication {
public String journal = "ABC-Verlag";
public String journal2 = "arxiv.org";
Article(String author, String title, int year, float pricePerUnit,String journal) {
super(author, title, year, pricePerUnit);
this.journal = journal;
}
void print(){
Article article1 = new Article("Max Muster","Titel" , 1980, 13.22f,"ABC-Journal");
System.out.println("Artikel: ");
System.out.println("Autor: " + article1.author);
System.out.println("Titel: " + article1.title);
System.out.println("Erscheinungsjahr: " + article1.year);
System.out.println("Preis: " + article1.pricePerUnit);
System.out.println("Zeitschrift: " + article1.journal);
}
void print2(){
Article article2 = new Article("Eugene Vasiliev, Monica Valluri", " A new implementation of the Schwarzschild method for constructing observationally-driven dynamical models of galaxies of all morphological types ", 2019, 0.0f, "arxiv.org");
System.out.println("Artikel: ");
System.out.println("Autor: " + article2.author);
System.out.println("Titel: " + article2.title);
System.out.println("Erscheinungsjahr: " + article2.year);
System.out.println("Preis: " + article2.pricePerUnit);
System.out.println("Zeitschrift: " + article2.journal2);
}
}
public class Book extends Publication {
public String publisher = "ABC-Verlag";
public String publisher2 = "Nikol";
Book(String author, String title, int year, float pricePerUnit,String publisher) {
super(author, title, year, pricePerUnit);
this.publisher = publisher;
}
void print(){
Book buch1 = new Book("Max Muster","Titel" , 1980, 15.99f,"ABC-Verlag");
System.out.println("Buch: ");
System.out.println("Autor: " + buch1.author);
System.out.println("Titel: " + buch1.title);
System.out.println("Erscheinungsjahr: " + buch1.year);
System.out.println("Preis: " + buch1.pricePerUnit);
System.out.println("Verlag: " + buch1.publisher);
}
void print2(){
Book buch2 = new Book("Charles Darwin", "Über die Entstehung der Arten", 1859, 9.95f, "Nikol");
System.out.println("Buch: ");
System.out.println("Autor: " + buch2.author);
System.out.println("Titel: " + buch2.title);
System.out.println("Erscheinungsjahr: " + buch2.year);
System.out.println("Preis: " + buch2.pricePerUnit);
System.out.println("Verlag: " + buch2.publisher2);
}
}
[/CODE]
Nun soll laut dem Tester (Feedbackssystem innerhalb der Prüfungsumgebung) eine zweite Reihe an Werten ausgegben werden. Die zweite Reihe habe ich versucht mit den Codestücken zu schreiben, die im oben genannten Code jeweils mit "buch2.xxx", "article2.xxx" sowie mit "pub2.xxx" deklariert sind. Allerdings wird nur die Ausgabe angezeigt, die als "buch1.xxx", "article1.xxx" sowie mit "pub1.xxx" deklariert ist.
Das konkrete Problem wäre also, dass die zweite Eingabe quasi als die erste Eingabe erkannt wird, bzw. gar nicht erst stattfindet. Die Erste Ausgabe (buch1.xxx etc.) funktioniert tadellos. Ich komme jedoch nicht auf die Lösung.
Ich bedanke mich für jede Hilfe im Vorraus!
Zuletzt bearbeitet: