Wie Methoden aufrufen? Java BlueJ

Code:
/**
 * Speichert Details über Vereinsmitgliedschaften.
 * 
 * @author (Ihr Name) 
 * @version (eine Versionsnummer oder ein Datum)
 */
import java.util.ArrayList;

public class Verein
{
    private ArrayList<Mitgliedschaft> mitglied;
                    
    /**
     * Konstruktor für Objekte der Klasse Verein
     */
    public Verein()
    {
         mitglied = new ArrayList<Mitgliedschaft>();
        
    }

    /**
     * Füge ein neues Mitglied in die Mitgliederliste ein.
     * @param mitglied Infos über das einzufügende Mitglied.
     */
    public void beitreten(Mitgliedschaft mitglied)
    {
        
        this.mitglied.add(mitglied);
    }

    /**
     * @return die Anzahl der Mitglieder (Mitgliedschaft-Objekte)
     *         in diesem Verein.
     */
    public int anzahlMitglieder()
    {
        return mitglied.size();
    }
}

Ich glaube das war es?
 
Kann man so machen. Mit aussagekräftigeren Namen wäre das aber nicht passiert. "Füge Mitglied Mitglied hinzu" kling schon seltsam.
 
Darlis schrieb:
Mit aussagekräftigeren Namen wäre das aber nicht passiert. "Füge Mitglied Mitglied hinzu" kling schon seltsam.

Genau! Den this-Bezeichner benötige ich regelmäßig nur in Konstruktoren.

Eine Liste verwendet man meist, wenn man mehrere Dinge ablegen möchte. Das sollte man auch beim Namen verdeutlichen. Wie man überhaupt alles möglichst prägnant benennen sollte. Spart Kommentare und hilft den Code auch noch nach Wochen, Monaten, Jahren zu verstehen.
 
HerrDrachen schrieb:
btw: ich fand diese Aufgabe einfacher als die letze...
Das glaube ich dir, du hast ja nur die Hälfte implementiert.
Prüfen Sie jedes Mal, wenn sie ein Objekt eintragen, mit der Methode
anzahlMitglieder, ob die Methode beitreten wirklich in die Sammlung einfügt und ob die Methode anzahlMitglieder selbst das richtige Ergebnis liefert.
 
?
Ich habe die Aufgabe ganz und nicht nur zur Hälfte gelöst.
Die Methode anzahlMitglieder gibt die korrekte Anzahl der Mitglieder an, die eingetragen wurden.
 
Das ist aber auch nur der letzte Teil. Du hast noch nicht geprüft, ob die Mitglieder auch tatsächlich eingefügt worden sind.
 
HerrDrachen schrieb:
?
Ich habe die Aufgabe ganz und nicht nur zur Hälfte gelöst.
Die Methode anzahlMitglieder gibt die korrekte Anzahl der Mitglieder an, die eingetragen wurden.

Ja, aber hier geht es um die Methode beitreten(). Dort findet nicht die verlangte Prüfung statt!
 
Ah ja, hast recht.
 
@soares
@Darlis

Kann ich fragen, was ihr beide beruflich macht?
Oder habt ihr euch das alles selbst beigebracht?
 
Ich hab mit Delphi in der Schule angefangen, dann u.a. Java im Studium und dann noch diverse andere Sprachen in learning-on-the-job (größtenteils selbst beigebracht). Wenn du mal eine Sprache kannst, musst du für eine Weitere meist nur die neue Syntax und ein paar sprachenspezifische Konzepte lernen.
 
Informatik an der FH Trier.
 
Ich bin jetzt etwas weitergekommen.
Aus dem BlueJ Buch, Kapitel 4, Seite 192

Fügen Sie der Klasse Auktion eine Methode beenden hinzu.
Diese sollte die Sammlung der Posten durchlaufen und die Details aller
Positionen ausgeben. Verwenden sie dazu eine for-each Schleife. Posten mit
mindestens einem Gebot sollten als verkauft angesehen werden, sodass Sie nach
Posten-Objekten Ausschau halten, deren Datenfeld hoechstesGebot nicht null ist.
Verwenden Sie eine lokale Variable in der Schleife, um den
Wert zu speichern, der durch Aufrufe der Methode gibHoechstesGebot
zurückgeliefert wird und testen Sie diese Variable auf den Wert null.

Bei verkauften Posten sollten der Name des erfolgreichen Bieters und
das Höchstgebot ausgegeben werden, bei unverkauften Posten eine
kurze Meldung, die dies deutlich macht.

puuuh...wie fange ich an?
Kann mir jemand mit etwas Code den Anfang erleichtern?
 
Wie wär's mit der Klasse und Methodensignatur? Dir wurde ja schon Pseudocode vorgeschlagen. Wie eine for-each-Schleife aussieht, siehst du hier.

Ich hoffe das etwas Code reicht dir für den Anfang, denn wie immer ist aus deiner Aussage nicht klar, wo du Probleme hast oder was du nicht verstehst.
 
HerrDrachen schrieb:
puuuh...wie fange ich an?

Am Anfang. Eine Methode hinzufügen. Dann so lange die einzelnen Handlungsschritte umsetzen, bis Du nicht mehr weiter kommst. Dann den aktuellen Code posten und Dein konkretes Problem beschreiben.
 
Hallo,

bevor ich im anderen Thread von mir weitermache, hier eine etwas einfachere Aufgabe:

Wir werden etwas hinzufügen, über das die meisten Musikplayer verfügen: eine
"Shuffle" beziehungsweise "Zufallsabspiel" Funktion.
Das Paket java.util enthält die Klasse Random, deren Methode nextInt eine positive
ganze Zahl innerhalb eines begrenzten Bereichs erzeugt. Schreiben Sie eine Methode in
der Klasse Musiksammlung, die einen zufälligen Track ihrer Liste auswählt und abspielt.

Hinweis: 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. Lesen Sie die API-Dokumentation für die Random-Klasse
um festzustellen, welche der nextInt-Methoden Sie wählen müssen.

Was ich bisher gemacht habe:
- neue Klasse Musiksammlung erstellt
-Random importiert
-Methode geschrieben ( ist fehlerhaft)

Code:
/**
 * Beschreiben Sie hier die Klasse MusikSammlung.
 * 
 * @author (Ihr Name) 
 * @version (eine Versionsnummer oder ein Datum)
 */
import java.util.Random;

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

    /**
     * Konstruktor für Objekte der Klasse MusikSammlung
     */
    public MusikSammlung()
    {
       
        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;
    }
}


die einen zufälligen Track ihrer Liste auswählt und abspielt.

Welchen Track, aus welcher Liste? Was ist hier überhaupt gemeint?

Um eine Zufallszahl zu erzeugen, müssen wir
-eine Instanz der Klasse Random erzeugen
-an dieser Instanz eine Methode aufrufen, um eine Zufallszahl zu erhalten
 
Zuletzt bearbeitet:
Hast du wieder ein Kapitel übersprungen? Es klingt so, als wäre der eigentliche Player in einem vorigen Kaptiel/Abschnitt implementiert worden und das Shuffle ist eine Ergänzung dessen.
 
Ich bin einige Seiten zurückgegangen, weil die Aufgabe weiter oben zu schwer ist.
Erstmal diese Aufgabe....
Man müsste diese Aufgabe mit meinen Informationen lösen können.
 
Zurück
Oben