# Projekt Sportfest



## RowdyN (17. Sep 2015)

_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!!!*


----------



## CursedCookie (17. Sep 2015)

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:

```
public int gibPunkte ()  {
return punkte
}
```

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


----------



## strußi (18. Sep 2015)

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 (18. Sep 2015)

@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 (18. Sep 2015)

Hier die verbesserte Form

```
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 (19. Sep 2015)

im konstruktor nur noch die zeile punkte =0; ist damit gemeint
Man könnte den Konstruktor dann so schreiben

```
public Teilnehmer(String nachname, String vorname)
    {
        this.nachname =nachname;
        this.vorname =vorname;
        this.punkte =0; //Initialisierung mit 0 - this ist nicht unbedingt nötig.
    }
```


----------



## RowdyN (19. Sep 2015)

Okay, danke an Alle die mir geholfen haben. Die Aufgabe ist damit gelöst!!


----------

