Habe letzte Prüfung leider ein wenig verbockt weil es bei diesem Beispiel mit den meisten
Punkten nicht hingehaut hat. Jetzt suche ich nach meinen Fehlern und bitte euch um
Unterstützung
Hier die Aufgabenstellung:
Ich poste nun jede Klasse einzeln um es übersichtlicher zu halten.
Ich habe auch immer neben den Code meine Fehler / Fragen geschrieben...
der letzte Punkt der Aufgabe bezieht sich auf dynamisches Binden?
Welche Methode eines Objekts tatsächlich aufgerufen wird, wird dynamisch zur Laufzeit festgestellt (“dynamisches Binden”).
ist die Umsetztung der Aufgabe hiermit erfüllt worden? Wurde das füllen des Array korrekt ausgeführt? Bin für alle Tipps und Vorschläge dankbar.
Lg
Punkten nicht hingehaut hat. Jetzt suche ich nach meinen Fehlern und bitte euch um
Unterstützung
Hier die Aufgabenstellung:
Code:
· Es gibt Bücher, zu denen der Autorname, der Titel und die Sprache festgehalten
werden soll.
· Gedruckte Bücher und elektronische Bücher sind Unterklassen von Büchern.
Gedruckte Bücher haben zusätzlich eine Seitenanzahl und sind lieferbar oder nicht.
Elektronische Bücher haben eine Dateigröße und ein Format. Erstellen Sie einen
Konstruktor pro Klasse, der alle Instanzvariablen der jeweiligen Klasse initialisiert.
· Die Klassen sollen folgende abstrakte Methoden haben:
Buch: drucken()
ElektronischesBuch: speichern()
GedrucktesBuch: kopieren()
· Es sei eine Klasse WebArtikel als Unterklasse von ElektronischesBuch gegeben
( dabei handelt es sich um eine nicht- abstrakte Klasse), sowie eine ebenfalls
nicht-abstrakte Klasse Lehrbuch als Unterklasse von GedrucktesBuch.
· Erstellen Sie nun eine Klasse Beispiel mit der main Methode, die ein
Buch –Array erzeugt und füllen Sie es mit vier Objekten von Klassen,
die Sie in dieses Array abspeichern können.
· Welche Methode besitzen alle im vorgien Punkt erzeugten Objekte?
Schreiben Sie eine Schleife in der main Methode, die für alle Elemente des
Arrays diese Methode ausführt.
· Wann wird festgestellt, aus welcher Klassendefinition die ausführende Methode
herangezogen wird? Wie nennt man das dahinterstehende Konzept?
Ich poste nun jede Klasse einzeln um es übersichtlicher zu halten.
Ich habe auch immer neben den Code meine Fehler / Fragen geschrieben...
Java:
public interface Buecher {
public String autorenname; //fehler -> wurde nicht initialisiert
public String titel; //fehler -> wurde nicht initialisiert
public String sprache; //fehler -> wurde nicht initialisiert
public abstract void drucken();
}
Java:
public abstract class GedruckteBuecher implements Buecher{
public int seitenzahl;
public boolean lieferbar;
public abstract void speichern();
public GedruckteBuecher(int seitenzahl, boolean lieferbar) {
this.seitenzahl = seitenzahl;
this.lieferbar = lieferbar;
}
}
Java:
public abstract class ElektronischeBuecher implements Buecher {
public int datengroesse;
public String format;
public abstract void kopieren();
public ElektronischeBuecher(int datengroesse, String format){
this.datengroesse = datengroesse;
this.format = format;
}
}
Java:
public class WebArtikel extends ElektronischeBuecher {
public void drucken() {}
public void kopieren() {}
public WebArtikel (int datengroesse, String format){
super(datengroesse, format);
}
}
Java:
public class Lehrbuch extends GedruckteBuecher{
public void drucken(){}
public void speichern(){}
public Lehrbuch(int seitenzahl, boolean lieferbar){
super(seitenzahl,lieferbar);
}
}
Java:
public class Bsp {
public static void main(String[]args){
Bsp eins = new Bsp();
Buecher [] array = new Buecher[] {new Lehrbuch(5,true),new WebArtikel(5,"Hello")}; // nur 2 Objekte möglich oder ist die Angabe anders zu verstehen?
for (int i = 0; i< array.length; i++){
array[i].drucken();
array[i].kopieren(); // Methode kopieren() is undefined for the type Buecher
array[i].speichern(); // Methode kopieren() is undefined for the type Buecher
}
}
}
der letzte Punkt der Aufgabe bezieht sich auf dynamisches Binden?
Welche Methode eines Objekts tatsächlich aufgerufen wird, wird dynamisch zur Laufzeit festgestellt (“dynamisches Binden”).
ist die Umsetztung der Aufgabe hiermit erfüllt worden? Wurde das füllen des Array korrekt ausgeführt? Bin für alle Tipps und Vorschläge dankbar.
Lg