Hallo, ich soll für eine Schularbeit die Datenstruktur Liste implementieren. Ich würde gerne den Dienst der inneren Klasse "abspielen" von der Liste ausführen lassen, damit später die Hauptanwendung dies machen kann. Was muss ich dafür in den Dienst der Liste "public void abspielen" schreiben? Ich arbeite mit Java + in BlueJ.
Danke im Vorraus.
Danke im Vorraus.
Code:
/**
* Beschreiben Sie hier die Klasse Liste.
*
* @author (Ihr Name)
* @version (eine Versionsnummer oder ein Datum)
*/
public class Liste
{
private class Knoten
{
private MP3 kenntMP3;
private Knoten kenntNachfolger;
private Knoten kenntVorgaenger;
public Knoten(MP3 pInhalt)
{
kenntMP3 = pInhalt;
kenntNachfolger = null;
kenntVorgaenger = null;
}
public MP3 inhalt()
{
return kenntMP3;
}
public Knoten nachfolger()
{
return kenntNachfolger;
}
public void setzeNachfolger(Knoten pNachfolger)
{
kenntNachfolger = pNachfolger;
}
public Knoten vorgaenger()
{
return kenntVorgaenger;
}
public void setzeVorgaenger(Knoten pVorgaenger)
{
kenntVorgaenger = pVorgaenger;
}
public boolean passt(String s)
{
return kenntMP3.passt(s);
}
public void abspielen()
{
kenntMP3.abspielen();
}
}
private Knoten hatBug;
private Knoten hatHeck;
private Knoten kenntAktuelles;
private int zAnzahl;
public Liste()
{
hatBug = new Knoten(null);
hatHeck = new Knoten(null);
hatBug.setzeNachfolger(hatHeck);
hatHeck.setzeVorgaenger(hatBug);
kenntAktuelles = null;
zAnzahl = 0;
}
public void zumAnfang()
{
kenntAktuelles = hatBug.nachfolger();
}
public void zumEnde()
{
kenntAktuelles = hatHeck.vorgaenger();
}
public void vor()
{
if(kenntAktuelles != null)
{
if(!this.istLetztes())
{
kenntAktuelles = kenntAktuelles.nachfolger();
}
}
}
public void zurueck()
{
if(kenntAktuelles != null)
{
if(!this.istErstes())
{
kenntAktuelles = kenntAktuelles.vorgaenger();
}
}
}
public boolean istErstes()
{
return kenntAktuelles == hatBug.nachfolger();
}
public boolean istLetztes()
{
return kenntAktuelles == hatHeck.vorgaenger();
}
public MP3 aktuellesElement()
{
if(!istLeer())
{
return kenntAktuelles.inhalt();
}else
{
return null;
}
}
public void fuegeDahinterEin(MP3 pInhalt)
{
Knoten lNeuer;
Knoten k;
if(istLeer())
{
k = hatBug;
}else
{
k = kenntAktuelles;
}
lNeuer = new Knoten(pInhalt);
lNeuer.setzeNachfolger(k.nachfolger());
lNeuer.nachfolger().setzeVorgaenger(lNeuer);
lNeuer.setzeVorgaenger(k);
k.setzeNachfolger(lNeuer);
kenntAktuelles = lNeuer;
zAnzahl++;
}
public void fuegeDavorEin(MP3 pInhalt)
{
Knoten lNeuer;
Knoten k;
if(istLeer())
{
k = hatHeck;
}else
{
k = kenntAktuelles;
}
lNeuer = new Knoten(pInhalt);
lNeuer.setzeVorgaenger(k.vorgaenger());
lNeuer.vorgaenger().setzeNachfolger(lNeuer);
lNeuer.setzeNachfolger(k);
k.setzeVorgaenger(lNeuer);
kenntAktuelles = lNeuer;
zAnzahl++;
}
public void loesche()
{
if(!istLeer())
{
kenntAktuelles.nachfolger().setzeVorgaenger(kenntAktuelles.vorgaenger());
kenntAktuelles.vorgaenger().setzeNachfolger(kenntAktuelles.nachfolger());
zAnzahl--;
if(!istLeer())
{
kenntAktuelles = kenntAktuelles.nachfolger();
}else
{
kenntAktuelles = null;
}
}
}
public int laenge()
{
return zAnzahl;
}
public boolean istLeer()
{
if(this.laenge() == 0)
{
return true;
}
else
{
return false;
}
}
public void entferneAlleElemente()
{
hatBug.setzeNachfolger(hatHeck);
hatHeck.setzeVorgaenger(hatBug);
kenntAktuelles = null;
zAnzahl = 0;
}
public void suche(String suchtext)
{
Knoten k;
k = hatBug.nachfolger();
while(k != hatHeck)
{
if(k.passt(suchtext))
{
kenntAktuelles = k;
k = hatHeck;
}else
{
k = k.nachfolger();
}
}
}
public void abspielen()
{
}
public void schreibeListe()
{
Knoten k;
k = hatBug.nachfolger();
while(k != hatHeck)
{
System.out.println(k.kenntMP3.toString());
k = k.kenntNachfolger;
}
}
}