Projekt Sportfest

RowdyN

Mitglied
Hallo Leute,

wir haben in der Schule vor kurzer Zeit mit Java angefangen und üben die Grundlagen aktuell mit BlueJ. Ich komme bei der einen Aufgabe nicht weiter. Ich habe im Bild festgehalten wie weit ich gekommen bin. Hier nun die Aufgabe.

Es geht im Großen und Ganzen um ein Sportfest, für welches Urkunden gedruckt werden sollen. Nun sollen die folgenden Klassendiagramme in der Java-Klasse festgehalten werden - nachname : String - vorname : String - punkte : int

Teilnehmer (nachname : String, vorname : String)
gibPunkte() : int
erhoehePunkte(neuePunkte : int) :void
erstelleUrkunde() : void


Im Konstruktor sollen Vor- und Nachname geschrieben , sowie die Punktzahl mit 0 initialisiert werden.

Ich brauche nur noch gibPunkte() irgendwie verwenden, wenn ich das richtig sehe, habe aber keine Ahnung wo und wie.

Den anschließenden Konsolen-Text bekomme ich auf jeden Fall alleine hin.

Vllt kann mir jemand kurz sagen wie ich weiter vorgehen muss.
Gerne auch mit einfachen Anweisung und Tipps die man als Anfänger gut verstehen kann

Danke im Vorraus!!!

iuo.png
 

CursedCookie

Mitglied
Hmmm...
Schritt 1 bluej deinstallieren, Schritt 2 irgendwas anderes installieren. ;)

Aber jetzt im ernst.
Was soll gibPunkte denn machen? Die Punkte zurückliegen?
Dann legst du einfach eine neue Methode an wie folgt:
Java:
public int gibPunkte ()  {
return punkte
}

Und nutzt die Methode statt dem Direktzugriff auf die Punkte wenn du den string der Urkunde zusammenbaust
 

strußi

Top Contributor
punkte sollen erst im konstruktor initialisiert werden also die Objektvariable punkte ohne wert hinschreiben.
deinem Konstruktor fehlt die initialisierung der punkte (punkte =0)
du brauchst die Variable "int neuePunkte" nicht alsObjektvariable. das ist nur ein Parameter für die punktaddition.
den Methodenrumpf kannst du auch so schrieben punkte +=neuePunkte; fertig.

Es steht alles ganz eindeutig in der Beschreibung
 

RowdyN

Mitglied
@CursedCookie: Ich glaube, dass der Vorschlag mit dem return punkte nicht so gemeint ist, bin mir aber auch nicht sicher.

@strußi: Die Objektvariable punkte habe ich jetzt oben ohne Wert geschrieben, die Variable int neuePunkte gelöscht und den Methodenrupf verbessert. Aber wie soll ich jetzt die Variable punkte erst im Konstruktor mit 0 initialisieren? Ich meine, dass die Punkte erst hinterher hinzugefügt werden und nicht im selben Schritt wie Vor und Nachname.
 

RowdyN

Mitglied
Hier die verbesserte Form
Java:
public class Teilnehmer
{
    private String nachname;
    private String vorname;
    private int punkte;
    public Teilnehmer(String meinNachname, String meinVorname)
    {
        nachname=meinNachname;
        vorname=meinVorname;
    }
    public void erhoehePunkte(int neuePunkte)
    {
        punkte+=neuePunkte;
    }
    public int gibPunkte()
    {
        return punkte;
    }
    public void erstelleUrkunde()
    {
        System.out.println("Der Teilnehmer '"+vorname+" "+nachname+"' hat "+punkte+" Punkte erreicht.");
        System.out.println("Herzlichen Glückwunsch!");
    }
}
 

strußi

Top Contributor
im konstruktor nur noch die zeile punkte =0; ist damit gemeint
Man könnte den Konstruktor dann so schreiben
Java:
public Teilnehmer(String nachname, String vorname)
    {
        this.nachname =nachname;
        this.vorname =vorname;
        this.punkte =0; //Initialisierung mit 0 - this ist nicht unbedingt nötig.
    }
 

Neue Themen


Oben