Erste Schritte Methoden vervollständigen

Devanther

Top Contributor
Hallo,

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

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

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

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

Aufgabe: Vervollständigen Sie die Methode anzahlMitglieder so, dass
sie die aktuelle Größe der Sammlung liefert.
Ist meine Lösung richtig?

Und 2te Aufgabe: Methode beitreten vervollständigen

Es wird ein Mitgliedschaft-Objekt in ein Verein-Objekt eingetragen.
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.

Wenn ich die Methode beitreten öffne und new Mitgliedschaft("Mitgliedsname...", Monat, Jahr) eingebe dann wird KEIN richtiges Ergebnis von anzahlMitglieder angezeigt. Die methode beitreten liefert dann den Wert o statt 1.
 
1.te Aufgabe richtig. Zweite unverständlich. Du hast da eine ArrayList von Strings ? Warum Strings ? Warum heisst diese ArrayList dateien ? Was ist das erwähnte Verein-Objekt ?

Edit: Die Frage nach dem Verein-Objekt hat sich erledigt. Das ist ja die Klasse die du gezeigt hat.
 
Hallo Devanther, ob die erste Aufgabe richtig ist, kann ich dir nicht sagen, da ich die Klasse Mitgliedschaft nicht habe und somit nicht testen kann, aber wie ich sehe, ist deine Methode beitreten() leer. Du müsstest in den geschweiften Klammern deinem Rechner ja die Anweisung geben, dass er das übergebene Mitglied der ArrayList hinzufügen soll. Bei einer ArrayList benutzt man die add()-Methode, zum Beispiel:
Java:
 dateien.add("Hans");
Allerdings hast du eine ArrayList der Art String erstellt, was aber etwas unpraktisch ist. Ich würde es an deiner Stelle zu
Java:
 dateien = new ArrayList<Mitgliedschaft>;
umändern, dann kannst du direkt in der Methode beitreten()
Java:
dateien.add(mitglied);
schreiben.
 
Kein Problem, ich lerne auch noch nicht so lange Java. Den Typ der ArrayList änderst du einfach, in dem du in die spitzen Klammern statt String dann Mitgliedschaft schreibst und das mit den dateien meinte JStein52 wohl einfach, dass das ein merkwürdiger Variablenname ist, bei dateien denkt man sofort an irgendwelche Textdateien oder ähnliches. Aber grundsätzlich kann man Variablen nennen wie man will, solange das Wort in der Java-Sprache nicht vorhanden ist - aber vielleicht wäre mitgliederliste ja schöner.

Willst du die beitreten()-Methode mit den oben gegebenen Tipps noch einmal selbst in Angriff nehmen?
 
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)
    {
        mitglied.add(mitglied);
    }

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

mitglied.add(mitglied);

Da kommt immernoch eine Fehlermeldung. Warum?
 
Ich bin jetzt etwas weitergekommen.
Aus dem BlueJ Buch, 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?
 
Arbeitest du auch mit BlueJ? 🙂 Ich habe mir das Projekt gerade auf Google Books angesehen; eine foreach-Schleife siehst du in der Methode zeigePostenListe(). Deine foreach-Schleife soll ebenfalls die Posten durchlaufen. In der Schleife wendest du auf das momentan in der Schleife befindliche Gebot die Methode gibHoechstesGebot() an und prüfst das Ergebnis. Dazu machst du eine If/else-Abfrage, denn das Programm soll unterschiedlich reagieren in Abhängigkeit davon, ob das höchste Gebot 0 ist oder nicht.
P.S.: Ich habe dir bei "Unterhaltungen" geantwortet.
 

Neue Themen


Zurück
Oben