| 

.NET C# Java Javascript Exception

2
Hi ,
die Überschrift der Frage ist vielleicht nicht so gut gewählt!

Ich hab ein Programm wo CD/DVD erben von Medium sind
Nun soll ich per super Aufruf (ausgeführt bei CD) folgendes ausgeben

CD: Künstler : Titel
Länge
Kommentar
Anzahl Titel

Nun wäre das natürlich kein Problem wenn die Variablennamen gleich sind , dann würd
Ich einfach "super.ausgeben" machen & im Medium dann die Variablen mit einem "this" bestücken in der "ausgeben" Methode , aber ich glaube das ist nicht der Sinn der Übung.

Gibt es eine andere Möglichkeit ?

Ich hatte das schon für DVD gemacht mit dem "this.titel" daher ist ein this schon
bei der Medium Methode vorhanden!

Aufgabenstellung

9.7 Die Notwendigkeit, in der Methode ausgeben den super-Aufruf durchführen zu müssen,
schränkt uns etwas bei der Formatierung der Ausgabe ein, denn wir sind abhängig davon,
wie die Superklasse ihre Daten formatiert. Nehmen Sie die notwendigen Änderungen an
der Klasse Medium und an der Methode ausgeben in CD vor, sodass die Ausgabe unten
produziert wird. Alle Änderungen an der Klasse Medium sollten nur für ihre Subklassen
sichtbar sein. Hinweis: Hier können Datenfelder helfen, die protected definiert sind.
CD: Die Toten Hosen: Reich und Sexy
16 Titel, 74 Minuten
Irgendein Kommentar über das Album



CD
/**
* Objekte dieser Klasse repräsentieren CDs.
* Sie speichern Informationen über eine CD, die
* wieder abgefragt werden können.
*
* @author Michael Kölling und David J. Barnes
* @version 2008.03.30
*/
public class CD extends Medium
{
private String kuenstler;
private int titelanzahl;

/**
* Initialisiere die CD.
* @param derTitel der Titel der CD.
* @param derKuenstler der Kuenstler dieser CD.
* @param stuecke die Anzahl der Stuecke auf der CD.
* @param laenge die Spielzeit der CD
*/
public CD(String derTitel, String derKuenstler, int stuecke, int laenge)
{
super(derTitel, laenge);
kuenstler = derKuenstler;
titelanzahl = stuecke;
}

/**
* @return den Künstler dieser CD.
*/
public String gibKuenstler()
{
return kuenstler;
}

/**
* Aufgabe 9.1, ausgabe des Künstlers
*/
public void ausgeben()
{
System.out.print("Künstler: " + kuenstler);
//super.ausgeben(); 9.2
}

/**
* @return die Anzahl der Titel auf dieser CD.
*/
public int gibTitelanzahl()
{
return titelanzahl;
}
}



Medium
/**
* Objekte dieser Klasse repräsentieren Medien in einer
* Multimedia-Datenbank. Sie speichern Informationen über ein
* Medium, die wieder abgefragt werden können.
* Diese Klasse dient als Oberklasse für speziellere Medientypen.
*
* @author Michael Kölling und David J. Barnes
* @version 2008.03.30
*/
public class Medium
{
private String titel;
private int spielzeit;
private boolean habIch;
private String kommentar;

/**
* Initialisiere die Datenfelder dieses Mediums.
* @param derTitel der Titel dieses Mediums.
* @param laenge die Spielzeit dieses Mediums.
*/
public Medium(String derTitel, int laenge)
{
titel = derTitel;
spielzeit = laenge;
habIch = false;
kommentar = "";
}

/**
* Trage einen Kommentar für dieses Medium ein.
* @param kommentar der einzutragende Kommentar.
*/
public void setzeKommentar(String kommentar)
{
this.kommentar = kommentar;
}

/**
* @return den Kommentar für dieses Medium.
*/
public String gibKommentar()
{
return kommentar;
}

/**
* Setze, ob wir dieses Medium in unserer Sammlung haben.
* @param vorhanden true, wenn wir das Medium haben, false sonst.
*/
public void setzeVorhanden(boolean vorhanden)
{
habIch = vorhanden;
}

/**
* @return true, wenn wir dieses Medium in unserer Sammlung haben,
* false sonst.
*/
public boolean gibVorhanden()
{
return habIch;
}

/**
* Gib Details über dieses Medium auf der Konsole aus.
* Aufgabe 9.1, nur Ttel ausgeben lasseb
*/
public void ausgeben()
{
System.out.print("Titel: " + this.titel);
if(habIch) {
System.out.println("*");
} else {
System.out.println();
}
//System.out.println(" " + kommentar);
}
}


Liebe Grüße
News:
01.01.2012
Shumuu 13 3
LiRo 1,3k 1 9
Wo ist das Problem?
Dein Code ist doch richtig und das super in der ausgeben-Methode doch auch.
LiRo 02.01.2012
Ok, hätte auch die "Hausaufgabenstellung" lesen.
LiRo 02.01.2012
1 Antwort
1
Als erstes muss Title über ein Getter verfügbar gemacht werden:
(Medium)
protected String getTitle()
{
return title;
}




Dann dann in der CD(oder welchen auch immer)-Klasse:
public void ausgeben()
{
System.out.print("Künstler: " + kuenstler+ "Titel: "+ getTitle());
}



2. Lösung:
(Medium)
protected String title;


(anderen Klassen)
public void ausgeben()
{
System.out.print("Künstler: " + kuenstler+ "Titel: "+ title);
}
02.01.2012
LiRo 1,3k 1 9
LiRo 1,3k 1 9

Stelle deine Java-Frage jetzt!