Hallo zusammen,
Ich habe eine etwas komplizierte Inkrement-Aufgabe. Ich möchte Personen in einer Verwaltung speichern. Bei jedem neuen Eintrag einer Person erfolgt eine automatische Vergabe der eindeutigen Id. Das erste Objekt soll die Id mit dem Wert 0 bekommen. Für jede neue Person der in die Verwaltung aufgenommen wird, soll die Id automatisch um den Wert 1 hochgezählt werden.
Wie könnte ich das besser programmieren? Im Code-Abschnitt habe ich folgendes versucht: Ich habe eine Hilfsvariable counterId für das hochzählen verwendet. Wenn ich z.B. equals aufrufe und die Namen von v1 und v2 vergleichen soll, soll er sich die IDs der Personen merken. Also sprich counterId.
Als Ausgabe bekomme ich:
ID: 1 , Person: Hans Peter
ID: 2 , Person: Hans Peter
Die Person mit der ID 2 und die Person mit ID 2 sind nicht gleich
Das ist ja leider so nicht richtig. Ich mache irgendwas mit der counterId falsch... Ich komme einfach nicht zu der Lösung
Ich habe eine etwas komplizierte Inkrement-Aufgabe. Ich möchte Personen in einer Verwaltung speichern. Bei jedem neuen Eintrag einer Person erfolgt eine automatische Vergabe der eindeutigen Id. Das erste Objekt soll die Id mit dem Wert 0 bekommen. Für jede neue Person der in die Verwaltung aufgenommen wird, soll die Id automatisch um den Wert 1 hochgezählt werden.
Wie könnte ich das besser programmieren? Im Code-Abschnitt habe ich folgendes versucht: Ich habe eine Hilfsvariable counterId für das hochzählen verwendet. Wenn ich z.B. equals aufrufe und die Namen von v1 und v2 vergleichen soll, soll er sich die IDs der Personen merken. Also sprich counterId.
Code:
public class Verwaltung {
private int id;
private String person;
private static int counterId;
public Verwaltung(int id, String person) {
this.person = person;
this.id = counterId;
counterId++;
}
public static int getCounterId() {
return counterId;
}
public String getPerson() {
return person;
}
public String toString() {
return "ID: " + getCounterId() + " , Person: " + getPerson();
}
public boolean equals(Object obj) {
if (!(obj instanceof Medium)) {
return false;
}
Verwaltung b = (Verwaltung) obj;
if (this.person != b.person) {
return false;
}
return true;
}
public static void main(String[] args) {
Verwaltung v1 = new Verwaltung(getCounterId(), "Hans Peter");
System.out.println(v1.toString());
Verwaltung v2 = new Verwaltung(getCounterId(), "Hans Peter");
System.out.println(v2.toString());
if (v1.equals(v2)) {
System.out.println("Personen sind gleich");
} else {
System.out.println("Die Person mit der ID " + v1.getCounterId() + " und die Person mit ID " + v2.getCounterId() + " sind nicht gleich");
}
}
}
Als Ausgabe bekomme ich:
ID: 1 , Person: Hans Peter
ID: 2 , Person: Hans Peter
Die Person mit der ID 2 und die Person mit ID 2 sind nicht gleich
Das ist ja leider so nicht richtig. Ich mache irgendwas mit der counterId falsch... Ich komme einfach nicht zu der Lösung