Wie Methoden aufrufen? Java BlueJ

Und auf den vorigen Seiten wird der Player nicht behandelt? Ist ja ungewöhnlich, dass du jetzt eigenständig eine Liste in die Klasse einfügen musst. Ich kann mir aber auch nicht vorstellen, dass das noch ein Problem für dich ist.
 
Immerhin hast Du schon gelernt Aufgaben abzutippen. Dafür gibts in der Grundschule bestimmt schon ein Lob. Mit Aufgaben verstehen hapert es leider noch.

Welche Methode hast Du geschrieben? Shuffle? beispielMethode?

Sie müssen Random importieren und ein Random Objekt erzeugen - und
zwar entweder direkt in der neuen Methode oder im Konstruktor und anschließend
in einem Datenfeld speichern.

Hier steht was von "oder", Du machst beides und das auch noch falsch. Von nicht zu einander passenden Methoden Signaturen und Rückgabetypen mal ganz zu schweigen.

Edit: Klar kann man die Aufgabe mit den Informationen lösen, man muss nur die Klasse entpsrechend vervollständigen. Wenn von einer Trackliste gesprochen wird und die Klasse keine hat, sollte man mal eine hinzufügen.
 
Und auf den vorigen Seiten wird der Player nicht behandelt? Ist ja ungewöhnlich, dass du jetzt eigenständig eine Liste in die Klasse einfügen musst. Ich kann mir aber auch nicht vorstellen, dass das noch ein Problem für dich ist.

Das ist eine Zusatzaufgabe zu der Aufgabe wo man mit anzahlMitglieder die Liste der eingetragenen Mitglieder wiedergeben soll.
Siehe oben.
Es geht also wieder um ArrayListe? Ich weiss nicht weiter.
 
HerrDrachen schrieb:
Das ist eine Zusatzaufgabe zu der Aufgabe wo man mit anzahlMitglieder die Liste der eingetragenen Mitglieder wiedergeben soll.
Siehe oben.
Es geht also wieder um ArrayListe? Ich weiss nicht weiter.

Wäre schon mal etwas. womit man eine Trackliste/Musiksammlung aufbauen könnte.
 
Ernsthaft? Du hast erst gestern mit Listen gearbeitet...
 
Indem Du Dir Gedanken darüber machst, was Du für Dein Vorhaben brauchst. Reicht eine Liste von Strings mit Musiktiteln? Brauchst Du eine Klasse dafür, die Interpret, Titel, Genre etc. beinhaltet, von der Du dann entsprechende Objekte instanziierst und dann einer entsprechenden Liste hinzufügst? Ich würde evtl. erstmal mit einer einfachen Implementierung anfangen.
 
Code:
/**
 * Beschreiben Sie hier die Klasse MusikSammlung.
 * 
 * @author (Ihr Name) 
 * @version (eine Versionsnummer oder ein Datum)
 */
import java.util.ArrayList;
import java.util.Random;

public class MusikSammlung
{
    // Instanzvariablen - ersetzen Sie das folgende Beispiel mit Ihren Variablen
    private int x;
    
    private int zufallsgenerator;
    
    private ArrayList<Tracks> lieder;

    /**
     * Konstruktor für Objekte der Klasse MusikSammlung
     */
    public MusikSammlung()
    {
        lieder = new ArrayList<Tracks>();
        x = 0;
    }
    public int Shuffle()
    { Random zufallsgenerator;
        zufallsgenerator = new Random();
        int index = zufallsgenerator.nextInt(); System.out.println(index);
        
        return zufallsgenerator;
    }    
    
    
    /**
     * Ein Beispiel einer Methode - ersetzen Sie diesen Kommentar mit Ihrem eigenen
     * 
     * @param  y    ein Beispielparameter für eine Methode
     * @return        die Summe aus x und y
     */
    public int beispielMethode(int y)
    {
        // tragen Sie hier den Code ein
        return x + y;
    }
}

Es kommt bei return zufallsgenerator; immer noch ne Fehlermeldung.

Indem Du Dir Gedanken darüber machst, was Du für Dein Vorhaben brauchst. Reicht eine Liste von Strings mit Musiktiteln? Brauchst Du eine Klasse dafür, die Interpret, Titel, Genre etc. beinhaltet, von der Du dann entsprechende Objekte instanziierst und dann einer entsprechenden Liste hinzufügst? Ich würde evtl. erstmal mit einer einfachen Implementierung anfangen.

Erstmal nur Musiktitel zufällig ausgeben. Dann weitersehen.
 
Und jetzt müssen wir raten welche Fehlermeldung in Zeile 17 angezeigt wird? Oder wie geht es weiter?
Ergänzung ()

Nachtrag: Na klar kommt da eine Fehlermeldung. Ähnliches Problem wie letztes mal. Weist du noch? Mit den aussagekräftigen Variablennamen?
 
incompatible types: Java.util.Random cannot be converted to int.

return index;

So jetzt gehts;-)

Wenn ich die Methode "Shuffle" verwende, wird eine Zufallszahl erzeugt.
 
Zuletzt bearbeitet:
HerrDrachen schrieb:
Code:
    private ArrayList<Tracks> lieder;

So macht es mehr Sinn: Eine Liste aus einzelnen Objekten einer Klasse (ergo Einzahl).

Code:
    private List<Track> tracks;

oder eben

Code:
    private List<Lied> lieder;
 
Und bevor du im Buch weiter vor oder zurückspringst: Frag dich doch mal selbst, ob du die Instanzvariablen "x" und "zufallsgenerator" brauchst bzw. als Weiterentwicklung einbeziehen willst.
 
Die Klasse Track habe ich natürlich erstellt.
Ergänzung ()

So es geht weiter^^

Aufgabe/Ergänzung:
Du solltest in deinem Projekt eine weitere Klasse "Track" anlegen, Attribute evtl. "name", "interpret" mit einem Konstruktor der genau die zwei Werte als Parameter kriegt. Dann machst du in dieser Klasse noch eine Methode
"play()" die z.B. Name und Interpret auf der Konsole ausgibt.
In deiner Klasse Musiksammlung legst du dann eine ArrayList<Track> an in die du mal so ca. 10 Tracks einfügst.
Dann generierst du in der Methode shuffle eine Zufallszahl zwischen 0 und der Länge der Liste. Dieses Element holst du dir dann mit get(nummer) aus der Liste und rufst dessen Methode play() auf.

Code:
/**
 * Beschreiben Sie hier die Klasse Tracks.
 * 
 * @author (Ihr Name) 
 * @version (eine Versionsnummer oder ein Datum)
 */
public class Tracks
{
    // Instanzvariablen - ersetzen Sie das folgende Beispiel mit Ihren Variablen
    private int x;
    
    private String name;
    
    private String interpret;

    /**
     * Konstruktor für Objekte der Klasse Tracks
     */
    public Tracks(String name, String interpret)
    {
        this.name = name;
        this.interpret = interpret;
        x = 0;
    }
    public String Abspielen (play)
    
        System.out.println("Name" + name + "Interpret" + interpret)
            
        return 
        
    
    /**
     * Ein Beispiel einer Methode - ersetzen Sie diesen Kommentar mit Ihrem eigenen
     * 
     * @param  y    ein Beispielparameter für eine Methode
     * @return        die Summe aus x und y
     */
    public int beispielMethode(int y)
    {
        // tragen Sie hier den Code ein
        return x + y;
    }
}

In Zeile 25 kommt eine Fehlermeldung.
Wie schreibe ich die return Methode?

Ist die Aufgabe bis zu dieser Stelle richtig?
 
Zuletzt bearbeitet:
Ich freue mich echt immer, wenn es in diesem und ähnlichen Threads neue Posts gibt. Das ist fast besser als Game of Thrones.
 
HerrDrachen schrieb:
In Zeile 25 kommt eine Fehlermeldung.
Ist es diesmal die berüchtigte BufferunderflowException?

HerrDrachen schrieb:
Ist die Aufgabe bis zu dieser Stelle richtig?
Ja, gut formuliert. Der Rest fehlt einfach. Wenn du keinen Bock mehr hast, lass es sein.
 
Dann bist du übermotiviert. Räum erst mal die Klasse auf bevor du weiter durch die Gegend codest. Was ist x? Was soll die Beispiel-Methode? Apropos Beispiel: Was ist der Unterschied zw. dieser und deiner fehlerhaften Methode?
 
HerrDrachen schrieb:
Ich bin hochmotiviert! Ich wollte nur fragen ob es bishier hin überhaupt richtig ist, bevor ich weiterüberlege.

Der Klassenname ist schon mal falsch...

Du willst keine return Methode erstellen, sondern eine return Anweisung - innerhalb einer Methode.

In Java werden Methodennamen übrigens mit einem Kleinbuchstaben begonnen. Klassennamen mit einem Großbuchstaben.
 
Zurück
Oben