Hallo,
ich suche nach einer Möglichkeit, eine Personalnummer als int-Wert automatisch beim
erzeugen eines neuen Objekts (hier Mitarbeiter) zu generieren.
Wie es rein theoretisch funktioniert ist mir schon bewusst, umgesetzt habe ich sowas
bisher wie im folgenden Code:
Die Personalnummer soll beim ersten Mitarbeiter bei 1000 beginnen und für jeden weiteren eben um eins erhöht werden.
Jeder Mitarbeiter wird in einer Liste gespeichert. Diese Liste lässt sich speichern und bei erneutem Ausführen
des Programms auch laden, so dass die erstellten Mitarbeiter nach Programmende eben nicht verloren gehen.
Das ist auch soweit machbar.
Aber natürlich ist bei einem erneuten Programmstart die Variable Counter wieder bei 1000.
Somit kann ich zwar meine Mitarbeiter wieder laden, aber wenn ich jetzt neue hinzufüge, fängt
der Counter ja wieder bei 1000 an. Und genau das soll verhindert werden.
Es ist zwingend notwendig, dass jeder Mitarbeiter eine eindeutige nur einmal vergebene Personalnummer hat.
Mir ist mit meinem derzeitigen Anfängerstand bisher nur eingefallen, eventuell eine Liste mit Personalnummern
zu führen, der bei jedem neu erzeugten Mitarbeiter nur die Personalnummer hinzugefügt bekommt. Diese Liste
ebenfalls zu speichern und bei Programmstart das letzte Element (also die letzte vergebene Personalnummer)
der Variablen Counter zuzuweisen.
Das kommt mir sehr aufwendig vor, allerdings reichen meine Kenntnisse noch nicht sehr weit.
Gibt es eine effizientere Möglichkeit?
Für jegliche Hilfestellung wäre ich sehr dankbar.
Kleine Anmerkung: Dies ist mein erster Post in diesem Forum. Ich bemühe mich, mich an alle Regeln
hier zu halten. Sollte ich irgendetwas nicht richtig umgesetzt haben, bin ich für Hinweise offen
Liebe Grüße
Steffi
ich suche nach einer Möglichkeit, eine Personalnummer als int-Wert automatisch beim
erzeugen eines neuen Objekts (hier Mitarbeiter) zu generieren.
Wie es rein theoretisch funktioniert ist mir schon bewusst, umgesetzt habe ich sowas
bisher wie im folgenden Code:
Java:
[/B]
public abstract class Mitarbeiter implements IGehalt {
private static int counter = 1000;
private int personalNr;
private String nachname;
private String vorname;
private Adresse adresse;
private String telefon;
private LocalDate geburtsdatum;
private Firmenwagen firmenwagen;
private Einsatzort einsatzort;
private double stundenanzahl;
private double stundenlohn;
public Mitarbeiter(String nachname, String vorname, String telefon, LocalDate geburtsdatum, double stundenlohn) {
this.personalNr = counter++;
this.nachname = nachname;
this.vorname = vorname;
this.telefon = telefon;
this.geburtsdatum = geburtsdatum;
this.stundenlohn = stundenlohn;
this.stundenanzahl = 0;
}
[B]
Die Personalnummer soll beim ersten Mitarbeiter bei 1000 beginnen und für jeden weiteren eben um eins erhöht werden.
Jeder Mitarbeiter wird in einer Liste gespeichert. Diese Liste lässt sich speichern und bei erneutem Ausführen
des Programms auch laden, so dass die erstellten Mitarbeiter nach Programmende eben nicht verloren gehen.
Das ist auch soweit machbar.
Aber natürlich ist bei einem erneuten Programmstart die Variable Counter wieder bei 1000.
Somit kann ich zwar meine Mitarbeiter wieder laden, aber wenn ich jetzt neue hinzufüge, fängt
der Counter ja wieder bei 1000 an. Und genau das soll verhindert werden.
Es ist zwingend notwendig, dass jeder Mitarbeiter eine eindeutige nur einmal vergebene Personalnummer hat.
Mir ist mit meinem derzeitigen Anfängerstand bisher nur eingefallen, eventuell eine Liste mit Personalnummern
zu führen, der bei jedem neu erzeugten Mitarbeiter nur die Personalnummer hinzugefügt bekommt. Diese Liste
ebenfalls zu speichern und bei Programmstart das letzte Element (also die letzte vergebene Personalnummer)
der Variablen Counter zuzuweisen.
Das kommt mir sehr aufwendig vor, allerdings reichen meine Kenntnisse noch nicht sehr weit.
Gibt es eine effizientere Möglichkeit?
Für jegliche Hilfestellung wäre ich sehr dankbar.
Kleine Anmerkung: Dies ist mein erster Post in diesem Forum. Ich bemühe mich, mich an alle Regeln
hier zu halten. Sollte ich irgendetwas nicht richtig umgesetzt haben, bin ich für Hinweise offen
Liebe Grüße
Steffi