0 Daumen
442 Aufrufe

Aufgabe:

Nachdem der Golfclub das System eine Weile erfolgreich eingesetzt hat, taucht ein Problem auf. Ein Clubmitglied heiratet und ändert seinen Namen. Das war bisher nicht vorgesehen.

Die Klasse Spieler verwaltet unter anderem den Namen der Mitglieder. Hier ist eine Änderung mit den bisherigen Methoden aber nicht möglich.

1a)  Erläutere, welche Gründe dafür und dagegen sprechen die Änderung des Attributs der Klasse Spieler zuzulassen.

b) Verändern Sie die Klasse Spieler so, dass die Änderung des Namens vorgenommen werden kann



Den Methodenkopf habe ich schonmal;):

public void umbenennen (String pName, String pNeuerName)

public class Spieler{

private String name;
private int handicap;

public Spieler(String pName, int pHandicap){
name = pName;
handicap = pHandicap;
}
public void setHandicap(int pHandicap){
handicap = pHandicap;
}
public int getHandicap(){
return handicap;
}
public String getName(){
return name;
}

}
Avatar von

1 Antwort

+1 Daumen
public void umbenennen (String pName, String pNeuerName)

Wozu der Parameter pName?

Außerdem hast du jetzt vier Methoden in deiner Klasse:

  1. getHandicap()
  2. setHandicap(int pHandicap)
  3. getName()
  4. umbenennen(String pName, String pNeuerName)

Erkenne die Inkonsistenz.

b) Verändern Sie die Klasse Spieler so, dass die Änderung des Namens vorgenommen werden kann

Dem Attribut name muss ein Wert zugewiesen werden. Das wird schon mal in der Klasse gemacht. Schau dir an wie es da gemacht wurde.

Avatar von 5,6 k

Danke,


Aber ich verstehe die a nicht ganz

Ein Grund der dagegen spricht ist, dass das System so schlecht entworfen worden ist, dass es durch die Änderung eines Namens zu Inkonsistenzen innerhalb des Systems kommt.

Ein Grund der dafür spricht ist, dass das System einen Ausschnitt der Realität abbilden soll und es deshalb ohne Änderbarkeit des Namens zu Inkonsistenzen zwischen Realität und System kommen wird.

Danke;)


Und wie stelle ich das bei b an?



Also, wie implementiere ich "unbenennen"


Meine Idee ist, dass der alte Name aufgerufen wird, dann gelöscht wird und antelle von diesen dann der neue Name ergänzt wird.


Also alt raus und neu rein.


Aber ich habe echt keine Ahnung wie ich das umsetzen kann.


Oder denke ich zu kompliziert?

Dem Attribut name muss ein Wert zugewiesen werden. Das wurde schon mal in der Klasse gemacht. Finde heraus, wo und wie das gemacht wurde.

Die Klasse Spieler verwaltet unter anderem das Handicap der Mitglieder. Hier ist eine Änderung mit den bisherigen Methoden möglich. Finde heraus, wo und wie das gemacht wurde.

In der Methode setHandicap

Und dementsprechend schreibst du eine Methode setName.

Aber wenn ich denke mache, wie kann ich den bestimmten Namen umbenennen?

Der Name solll nicht umbenannt werden. Der Name soll geändert werden. Indem dem Attribut name ein neuer Wert zugewiesen wird. So wie dem Attribut handicap ein neuer Wert zugewiesen wird.

Ah danke!


Ich verstehe

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community