Klassen Objektkonstruktion hochzählen

Kiriku

Mitglied
Guten Morgen zusammen,
ich hab eine Aufgabe für die Uni, die ich nicht wirklich fehlerfrei hinbekomme deswegen wollte ich hier mal nachfragen und zwar ist die aufgabe wie folgt.

Ich soll eine Spieler Klasse erstellen die durch einen wo der Konstruktor den Spielernamen als Parameter bekommt. Soweit so gut, aber nun soll noch die Rückennumer des Spieler anhand der Objektkonstruktion erstellt werden. Also Spieler1 = Nr. 1, Spieler2 = Nr. 2.

Ich bekomme da leider immer nur für jeden Spieler die Rückennummer 11

Der Code:
Code:
/**
* Klasse Spieler
* @author akden
*
*/
public class Spieler {
    private String name;
    private static int backendNr=0;
    /**
     * Konstuktor für Spieler
     * @param name
     */
    public Spieler(String name) {
        if(Spieler.backendNr >= 11) {
            throw new IllegalStateException("Mehr als 11 Spieler sind verboten!");
        }else {
            this.name = name;
            Spieler.backendNr++;
        }
    }
    /**
     * Ausgabe von name(backendNr)
     */
    public String toString() {
        return name+"("+Spieler.backendNr+")";
    }
 
}

Sieht da irgendwer einen Lösungsansatz zu meinem Problem?

Edit: Wurde gelöst
 
Zuletzt bearbeitet:

VfL_Freak

Top Contributor
Moin,

keine Ahnung, wo Du "toString" aufrufst, aber mal ins Blaue geraten: Du gibst immer die letzte der hochgezählten Nummer aus!
Gib' den Namen doch einfach im Konstruktor direkt NACH dem Hochzählen aus!

Dann:
throw new IllegalStateException("Mehr als 11 Spieler sind verboten!");
man sollte NIE irgendwelche Exception verwenden, um Fehlermeldung anzuzeigen !!

VG Klaus
 

Kiriku

Mitglied
Eig. ganz simple bin erstaunt das ich nicht vorher darauf kam.
ich hab eine count Variable hinzugefügt die hochgezählt und die backendNr zu einer normalen Variable umgeändert.
bei der else abfrage habe ich dann this.backendNr = count+1; geschrieben und so gibt er mir nun immer die richtige Rückennummer aus
 

Kiriku

Mitglied
Moin,

keine Ahnung, wo Du "toString" aufrufst, aber mal ins Blaue geraten: Du gibst immer die letzte der hochgezählten Nummer aus!
Gib' den Namen doch einfach im Konstruktor direkt NACH dem Hochzählen aus!

Dann:

man sollte NIE irgendwelche Exception verwenden, um Fehlermeldung anzuzeigen !!

VG Klaus
Das sind vorgaben die wir einhalten müssen, das gibt der Prof so vor. Ich würde das auch nicht so machen.
 

Neue Themen


Oben