Wie Methoden aufrufen? Java BlueJ

Code:
/**
 * Beschreiben Sie hier die Klasse Tracks.
 * 
 * @author (Ihr Name) 
 * @version (eine Versionsnummer oder ein Datum)
 */
public class Track
{
    // 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 Track(String name, String interpret)
    {
        this.name = name;
        this.interpret = interpret;
    }
    public void abspielen () {
        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;
    }
}

So, jetzt gehts. Wenn ich eine Instanz von Track erzeuge und einen Interpret und einen Titel eingebe,
kann ich es mit meiner abspielen-Methode auf der Konsole anzeigen lassen.

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.

puuuh, wie mache ich das?
Wie füge ich 10 Tracks ein?

https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html

Ich habe das gefunden, kann es aber nicht interpretieren.
 
Zuletzt bearbeitet:
HerrDrachen schrieb:
Wie füge ich 10 Tracks ein?
Das ist ein Fangfrage, oder? Bei den Mitgliedern hattest du damit kein Problem.
 
hm....add. irgendetwas?

Code:
public void beitreten(Mitgliedschaft mitglied)
    {
      
        this.mitglied.add(mitglied);
    }

Aber 10 Tracks einfügen, wie das?
 
Zuletzt bearbeitet:
Ich weiß echt nicht ob du einfach nur auf dem Schlauch stehst oder dass du das, was du bisher programmiert hast, nicht verstanden hast. Da du konsequent x und beispielMethode in deiner Klasse drin lässt, tendiere ich stark zu letzterem.
 
Ich habe das drin gelassen, weil es mich nicht stört.

lieder.add(new Track("Moon Walk", "Michael Jackson"));

Wie/Wo soll ich das einfügen?
Braucht man vielleicht eine Schleife?
 
HerrDrachen schrieb:
Ich habe das drin gelassen, weil es mich nicht stört.
Interessantes Konzept. Ich dachte schon du würdest des drin lassen weil sonst die Klasse nicht mehr funktioniert hätte.

HerrDrachen schrieb:
Wie/Wo soll ich das einfügen?
Braucht man vielleicht eine Schleife?
Da, wo es einfach funktioniert, oder da, wo es hingehört?
Schleifen kann man nutzen, muss man aber nicht.
 
Es gibt 2 Möglichkeiten: Du befüllt die Musiksammlung von außen oder die Musiksammlung befüllt sich selber. Dein Code deutet auf Letzteres hin, allerdings wäre Ersteres der richtige Ansatz, der leider auch komplizierter umzusetzen ist.
 
Code:
public MusikSammlung()
    {
        lieder = new ArrayList<Track>();
        lieder.add(new Track("Moon Walk", "Michael Jackson"));
        lieder.add(new Track("Mamma mia", "ABBA"));
        x = 0;
    }

So!

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

Eine Zufallszahl wird generiert, aber nicht nach der Länge der Liste.
Wie mache ich das?
Wie es weiter gehen soll, da bin ich echt überfordert.
 
Die Lösung steht in der Aufgabenstellung.
Das Paket java.util enthält die Klasse Random, deren Methode nextInt eine positive
ganze Zahl innerhalb eines begrenzten Bereichs erzeugt. ... Lesen Sie die API-Dokumentation für die Random-Klasse
um festzustellen, welche der nextInt-Methoden Sie wählen müssen.
 
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<Track> lieder;

    /**
     * Konstruktor für Objekte der Klasse MusikSammlung
     */
    public MusikSammlung()
    {
        lieder = new ArrayList<Track>();
        lieder.add(new Track("Moon Walk", "Michael Jackson"));
        lieder.add(new Track("Mamma mia", "ABBA"));
        lieder.add(new Track("Eminem", "Business"));
        lieder.add(new Track("Papa Roach", "Getting away with murder"));
        x = 0;
    }
    public int Shuffle()
    { Random zufallsgenerator;
        zufallsgenerator = new Random();
        int index = zufallsgenerator.nextInt(lieder.size());
        lieder.get(index).abspielen();
        
        return index;
    }    
    
    /**
     * 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;
    }
}

Geschafft.
 
Gz, da ist aber noch rel. viel überflüssiger Code. Warum gibt Shuffle den den Index zurück z.B.? Und der ganze Beispielcode...
 
Es hat ja schon geschrieben, dass ihn der überflüssige Code nicht stört, also bleibt er drin.
 
Das Leute hier immer noch versuchen weiterzuhelfen. Ich kann hier irgendwie keinen Fortschritt zur ersten Seite feststellen... :D
 
Das ist nicht richtig, ich bin viel weiter gekommen in den letzen 3 Wochen ca.

OK.

Definieren Sie in der Klasse Verein eine Methode, die
folgendermaßen beschrieben ist:
-Liefere die Anzahl der Mitglieder, die im angegebenen Monat
-Mitglied geworden sind
-@param monat der Monat des Beitritts.
-@return die Anzahl der Mitglieder, die im Monat beigetreten sind

public int beigetretenInMonat(int Monat)

Wenn der Parameter monat außerhalb des gültigen Bereichs von 1 bis 12 liegt, dann
gibt die Methode eine Fehlermeldung aus und liefert null zurück.

Wie fange ich an?
Es geht immer noch um das selbe Kapitel(4). Es sind die Aufgaben die auf die letzen folgen.
Ob es da viele Zusammenhänge gibt, weiss ich nicht.
 
HerrDrachen schrieb:
Wie fange ich an?
Diese Floskel (oder "wie mache ich das") hängst du überall dran. Außerdem ist die Frage unsinnig, denn den Anfang hast du ja schon mit der Methodensignatur gemacht (Parameternamen bitte klein schreiben). Der nächste Schritt wäre die Prüfung einzubauen.

HerrDrachen schrieb:
Ob es da viele Zusammenhänge gibt, weiss ich nicht.
Ich bin mir fast sicher, dass die Klasse Mitgliedschaft hier eine wichtige Rolle spielen wird.
 
Darlis schrieb:
Diese Floskel (oder "wie mache ich das") hängst du überall dran. Außerdem ist die Frage unsinnig, denn den Anfang hast du ja schon mit der Methodensignatur gemacht (Parameternamen bitte klein schreiben). Der nächste Schritt wäre die Prüfung einzubauen.

Ich bin mir fast sicher, dass die Klasse Mitgliedschaft hier eine wichtige Rolle spielen wird.

Als ob er wüsste was eine Methodensignatur ist. :p
 
Zurück
Oben