Wie Methoden aufrufen? Java BlueJ

HerrDrachen schrieb:
1.Prüfen ob das Buch "elemente" im Namen hat
1. Falls ja, einen Zähler um 1 erhöhen
1. hat der Zähler den Wert 5, gib das Buch zurück
2. Falls nein, nächstes Buch anschauen
2. Hast du alle Bücher angeschaut und noch keins zurückgegeben, dann gib null zurück oder werfe eine Exception.

Diese Schritte haben mit der Aufgabe oben nichts zu tun!

Die Aufgabe ist trivial, aber man muss natürlich erst einmal verstehen, was gemeint ist. Ich würde denken, dass die Begrifflichkeiten vorher erklärt wurden? Was versteht man unter einer "Sammlung"?
 
HerrDrachen schrieb:

Ich würde denken, dass damit "List" gemeint ist. Aber gut, eine konkrete Implementierung tut es auch.

Nun schau Dir die Aufgabe noch mal an:

1 Schreiben Sie eine Methode,
2 die mithilfe der Methode get
3 das fünfte Objekt
4 in einer Sammlung mit dem Namen elemente liefert.
 
Die Methode get geht die Liste solange durch, bis 5 Objekt, die elemente heissen gefunden werden.
Also, das 5 Objekte mit dem Namen elemente gefunden werden. Solange geht die Methode das durch.
 
HerrDrachen schrieb:
Die Methode get geht die Liste solange durch, bis 5 Objekt, die elemente heissen gefunden werden. Also, das 5 Objekte mit dem Namen elemente gefunden werden. Solange geht die Methode das durch.

Nein, das hast Du oben schon geschrieben. Das ist völlig falsch. Du hast vermutlich etwas im Kopf und liest die Aufgabe nicht genau. Schau noch mal. Vielleicht nach einer Pause, in der Du Dich mit etwas ganz anderem beschäftigst, um einen frischen Blick darauf zu werfen.
 
Zugegebenerweise ist
"Schreiben Sie eine Methode, die mithilfe der Methode get das fünfte Objekt in einer Sammlung mit dem Namen elemente liefert."
unglücklich formuliert. Man kann rausdeuten, dass die Sammlung den (Variablen-)namen Elemente haben sollte, oder dass das Objekt den Namen(Titel) haben(beinhalten) soll.

Aber egal, das Lernziel wird auch mit der zweiten Interpretation erreicht, denk ich, wenn er
1.Prüfen ob das Buch "elemente" im Namen hat
1. Falls ja, einen Zähler um 1 erhöhen
1. hat der Zähler den Wert 5, gib das Buch zurück
2. Falls nein, nächstes Buch anschauen
2. Hast du alle Bücher angeschaut und noch keins zurückgegeben, dann gib null zurück oder werfe eine Exception.
umsetzen könnte, könnte er auch das andere umsetzen. Wobei ich Zweifel habe, dass er das selbst geschrieben hat, oder redet er sich immer wie im 5. Punkt mit Du an. :)

Stichworte für die Lösung wären aber iterieren von Collections, (for-) Schleifen. Versuch Dir damit einen Code zu basteln und komm damit zurück. Es hat 0 Sinn Dir Code zu posten, versuch Code zu fabrizieren und poste ihn zur Korrektur bzw. für weitere Hinweise, das ist das einzig sinnvolle wie Du weiterkommst.
 
Zuletzt bearbeitet:
Drexel schrieb:
Zugegebenerweise ist
"Schreiben Sie eine Methode, die mithilfe der Methode get das fünfte Objekt in einer Sammlung mit dem Namen elemente liefert."
unglücklich formuliert. Man kann rausdeuten, dass die Sammlung den (Variablen-)namen Elemente haben sollte, oder dass das Objekt den Namen(Titel) haben(beinhalten) soll.

Schau Dir die Aufgabe vorher an. Aber auch ohne den Kontext ist die Aufgabe eindeutig. Seit wann liefert ein (nicht näher spezifiziertes) Objekt einen Namen?

Drexel schrieb:
Aber egal, das Lernziel wird auch mit der zweiten Interpretation erreicht, denk ich, wenn er
umsetzen könnte, könnte er auch das andere umsetzen. Wobei ich Zweifel habe, dass er das selbst geschrieben hat, oder redet er sich immer wie im 5. Punkt mit Du an.

Wenn eine Aufgabe in ihre Teilschritte zerlegt ist, sollte man das auch in Code umsetzten können. Wenn man denkt, dass hierzu eine Schleife notwendig ist und man sich noch nie mit Schleifen beschäftigt hat, dann bleibt man vielleicht stecken, bis man sich eingearbeitet hat.


Drexel schrieb:
Stichworte für die Lösung wären aber iterieren von Collections, (for-) Schleifen.

Es geht hier nicht um Schleifen. Vermutlich werden in dem Kapitel Listen abgehandelt und man soll sich damit beschäftigen.
 
Mit einer Schleife (und einem Zähler) die Sammlung durchlaufen und das fünfte Element zurückgeben.

Wie müsste der Code dazu lauten?
Wäre nett, ich schaff es einfach nicht.
 
Zuletzt bearbeitet:
get ist eine Methode, die du auf die Liste aufrufen kannst (da die Liste das genannte Interface implementiert). Wie man Methoden aufruft, weißt du ja ;)
Für diese Variante brauchst du auch keine Schleife.

Wenn du es doch mit Schleifen machen willst: wurden die schon in deinem Buch behandelt? Klingt nicht so als ob, daher solltest du es erst mal ohne probieren.
 
HerrDrachen schrieb:
Mit einer Schleife (und einem Zähler) die Sammlung durchlaufen und das fünfte Element zurückgeben.

Wie müsste der Code dazu lauten?
Wäre nett, ich schaff es einfach nicht.

Willst Du Dich mit Schleifen beschäftigen oder die Aufgabe lösen? Nochmal, bei der Aufgabe geht es nicht darum Schleifen zu verwenden. Kann man machen. Aber das zeigt nur, dass man etwas wesentliches nicht verstanden hat.

Schau Dir die Aufgabe noch mal an und den Link, den mental.dIseASe genannt hat und überlege, wie beides zusammenhängen könnte!
 
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.


public void alleDateienAusgeben()
{
for(String dateiname : dateien) {
System.out.println(dateiname);
}
}

Das gibt alle Elemente der ArrayList-Sammlung aus.
Wenn 4 Strings in der Liste stehen, dann wird die Anweisung 4 mal ausgeführt.
 
Zuletzt bearbeitet:
HerrDrachen schrieb:
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?

Wir kommen der Sache näher.


HerrDrachen schrieb:
Ich müsste dann halt nur insgesamt 5 Dateinamen adden und mit System.out.println(dateien.get(5));
die 5te Datei ausgeben.

Das ist nicht, was die Aufgabe verlangt. Die get() Methode ist offensichtlich Mittel der Wahl (steht ja explizit in der Aufgabenstellung). Aber Deine Methode liefert nichts zurück, sondern gibt etwas auf der Konsole aus.


HerrDrachen schrieb:
Und als nächsten werden Schleifen im Buch besprochen. fore-eatch schleife etc.

Wenn Schleifen noch nicht besprochen wurden, woher dann die Idee die Aufgabe mit einer Schleife zu lösen?
 
public String alleDateienAusgeben()
{
System.out.println(dateien.get(0));
System.out.println(dateien.get(1));
System.out.println(dateien.get(2));

return dateien;

}

Es kommt ne Fehlermeldung, kann das nicht compilieren.

Wenn Schleifen noch nicht besprochen wurden, woher dann die Idee die Aufgabe mit einer Schleife zu lösen?

Weil es auch wichtig ist, das mit einer Schleife hinzubekommen.
 
HerrDrachen schrieb:
public String alleDateienAusgeben()
{
System.out.println(dateien.get(0));
System.out.println(dateien.get(1));
System.out.println(dateien.get(2));

return dateien;

}

Es kommt ne Fehlermeldung, kann das nicht compilieren.

Interessant!
 
Was jetzt?

public ArrayList<String> alleDateienAusgeben()

{
System.out.println(dateien.get(0));
System.out.println(dateien.get(1));
System.out.println(dateien.get(2));

return dateien;

}


Jetzt kommt keine Fehlermeldung mehr.
Aber was habe ich damit gewonnen, wenn ich die Methode dann ausgebe?
 
Zuletzt bearbeitet:
Aha!

Ist allerdings immer noch keine Lösung für die Aufgabe in #37. Gewonnen scheint also noch nichts.
 
Aber wenn ich auf "dateiAusgeben" klicke, dann kann ich eingeben welche Datei (Index) ich ausgeben will.
Das funktioniert.
 
Zurück
Oben