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.
"Schreiben Sie die Deklaration eines privaten Datenfeldes bibliothek,
das eine ArrayList halten kann. Die Elemente der ArrayList sollen
vom Typ Buch sein.
Du kannst hier die <Code tags benutzen.
Kann es sein das du keine Buch-Klasse hast? weil so wie ich des sehe ist das Problem das der Compiler gar nicht weis was Buch sein soll
Ja, vielen Dank.
Ich hab eine Buch-Klasse erstellt, jetzt geht es.
Komme aber leider wieder nicht weiter:
"Schreiben Sie eine Methode, die mithilfe der Methode get das
fünfte Objekt in einer Sammlung mit dem Namen elemente liefert.
Ich hab absolut keine Idee, wie ich an die Aufgabe herangehen soll.
Alter schonmal auf den Tacho geschaut? Das ist von 2011! D. h. es ist entweder geklaut von wem oder diese Frage ist eine Scherzfrage.
Trotzdem: Alsbald du die Klasse Buch erstellst, sollte sie der Compiler kennen, d. h. es sollte kein Fehler mehr kommen.
public void alleDateienAusgeben()
{
System.out.println(dateien.get(0));
System.out.println(dateien.get(1));
System.out.println(dateien.get(2));
}
Ich habe diese Methode, "alleDateienAusgeben" hinzugefügt.
Und ich habe 3 Dateinamen hinzugefügt. (der Klasse Musiksammlung)
Wenn ich jetzt diese Methode starte, dann werden die 3 Dateien auf der Konsole ausgegeben.
Ist das die Lösung?
Ich müsste dann halt nur insgesamt 5 Dateinamen adden und mit System.out.println(dateien.get(5));
die 5te Datei ausgeben.
Und als nächsten werden Schleifen im Buch besprochen. fore-eatch schleife etc.
Bei dieser Aufgabenstellung musst du ja gar nicht die ganze Liste zrückgeben. Wie du den Inhalt der Liste an einem Index findest, weißt du ja. Jetzt musst du das nur noch zusammensetzen. Und meine letzte Nachricht ganz schnell wieder vergessen...
Du bekommst die ganze Liste "dateien" zurück. Jetzt kannst du eine andere Metode schreiben, die eine ArrayList voller Strings als Argument benötigt und dann deine Ausgeben-Metode als dieses Argument übergeben. Also z.B.
Java:
public void xy(ArrayList<String>){...}
Und dann kannst du diese Metode im Programm mit Hilfe von
Reden wir eigentlich noch darüber ?? Denn wenn ja dann enthält diese Sammlung ja vermutlich Objekte vom Typ "Buch" und du sollst nicht einfach die Sammlung zurückgeben sondern das fünfte Element in der Sammlung. Oder bist du gedanklich schon bei einer anderen Methode ?
Jetzt bin ich raus... Ich dachte, wir hätten diese Geschichte mit den Büchern erledigt und "elemente" wäre eine eigene Liste, in der Strings gespeichert werden...
Versuchen wir nicht grade einfach alle aus den Antworten der anderen schlau zu werden und stellen fest, dass wir die Frage nicht verstanden/ falsch verstanden oder aus den Augen verloren haben?
Kann sein. Ich gehe aber immer noch von der Frage aus Post #4 aus, wobei eigentlich nur unklar ist, welchen Datentyp die in elements gespeicherten Objekte haben.
import java.util.ArrayList;
/**
* Eine Klasse zur Verwaltung von Audiodateien.
* Diese Version kann die Dateien auch abspielen.
*
* @author David J. Barnes und Michael Kölling.
* @version 31.07.2011
*/
public class MusikSammlung
{
// Eine ArrayList, in der die Namen von Audiodateien gespeichert werden können.
private ArrayList<String> dateien;
// Ein Player zum Abspielen der Musikdateien.
private MusikPlayer player;
/**
* Erzeuge eine MusikSammlung
*/
public MusikSammlung()
{
dateien = new ArrayList<String>();
player = new MusikPlayer();
}
/**
* Füge der Sammlung eine Datei hinzu.
* @param dateiname die hinzuzufügende Datei.
*/
public void dateiHinzufuegen(String dateiname)
{
dateien.add(dateiname);
}
public ArrayList<String> alleDateienAusgeben()
{
System.out.println(dateien.get(0));
System.out.println(dateien.get(1));
System.out.println(dateien.get(2));
return dateien;
}
/**
* Liefere die Anzahl der Dateien in dieser Sammlung.
* @return die Anzahl der Dateien in dieser Sammlung.
*/
public int gibAnzahlDateien()
{
return dateien.size();
}
/**
* Gib eine Datei aus der Sammlung auf die Konsole aus.
* @param index der Index der Datei, deren Name ausgegeben werden soll.
*/
public void dateiAusgeben(int index)
{
if(index >= 0 && index < dateien.size()) {
String dateiname = dateien.get(index);
System.out.println(dateiname);
}
}
/**
* Entferne eine Datei aus der Sammlung.
* @param index der Index, der zu entfernenden Datei.
*/
public void entferneDatei(int index)
{
if(index >= 0 && index < dateien.size()) {
dateien.remove(index);
}
}
/**
* Starte das Abspielen einer Datei aus der Sammlung.
* Zum Beenden des Abspielvorgangs verwende beendeAbspielen() .
* @param index der Index, der abzuspielenden Datei.
*/
public void starteAbspielenDatei(int index)
{
String dateiname = dateien.get(index);
player.starteAbspielen(dateiname);
}
/**
* Stoppt den Player.
*/
public void beendeAbspielen()
{
player.stop();
}
}
Aufgabe nochmal:
"Schreiben Sie eine Methode, die mithilfe der Methode get das
fünfte Objekt in einer Sammlung mit dem Namen elemente liefert."
Nein, denn mit "liefern" ist normalerweise keine Konsolenausgabe gemeint, sondern die Methode soll den Wert per return an den Aufrufer zurück geben, Außerdem lieferst du nicht das fünfte Element und das gelieferte Objekt stammt auch nicht aus der Collection elements. In dem Code gibt es offenbar gar keine solche Collection. Deswegen vermute ich, dass der Code und die Aufgabe überhaupt nicht zusammen gehören.
EDIT: So, jetzt habe ich noch mehr Chaos verursacht. Habe beim Lesen "Sammlung" automatisch in "Collection" übersetzt und es dann gedanklich als Supertyp von ArrayList behandelt. Mit "Sammlung" ist hier ja wohl eher eine Instanz von Musiksammlung gemeint.