Konstruktor Problem - Variabel Erhöhen

mote

Mitglied
Hallo,

hier ein Teil meiner leichten Aufgabe, trotzdem hackt es noch 🙁

Schreibe eine Klasse "Car", welche eine eindeutige ID und einen Namen besitzt. Die ID soll bei Erstellung einer neuen Instanz automatisch erhöht und gemeinsam mit dem Namen im Konstruktor gesetzt werden.

Hier das Problem:
Die ID soll bei Erstellung einer neuen Instanz automatisch erhöht


Naja mit Hilfe einer static Variabel und dem inkrementieren kann man ja die ID jedes Autos bestimmen. Jedoch hat dann jedes Auto bei mir die selbe ID. Eh klar wegen static.

Wie kann ich das Problem Lösen? Sicher wieder nur eine Kleinigkeit 🙁


Hier mein Konstruktor und die Klassenvariabeln.



Code:
public class Car{
	
	private int ID = 0; //static kann es ja nicht sein
	private String Name;
	
	
	public Car(){

	}
	
	public Car (String Name){
	this.Name= Name;
// was kommt hier her?
		}


Vielen Dank
 
Erstell dir doch eine Hilfsvariable. Sowas wie private static int anzahlAutos = 0;

dann im Konstruktor einfach

this.ID += anzahlAutos;
anzahlAutos++;

Damit sollte es gehen.
 
Zuletzt bearbeitet:
Das ganze ist schön und gut , allerdings funktioniert es nur solange wie dein Programm läuft, angenommen du beendest deine Anwendung und startest sie erneut, fängt deine ID wieder bei 0 an, du wirst, insofern das für dich relevant ist, nicht drum herum kommen deine aktuelle ID irgendwo zwischenzuspeichern, entweder in einer Textdatei oder über serialisierung in z.B einer .dat oder .ser datei und diese beim starten deines Programmes wieder einzulesen um deine aktuelle id weiter inkrementieren zu können 🙂
 
Zuletzt bearbeitet:
Ich denke nicht, dass der TE soweit ist, geschweige denn, dass es hier vonnöten ist.

Eine DB wäre zudem geeigneter, um Informationen über Autos zu speichern.
Da müsste man dann auch auf Caching achten usw.

Schafft hier mehr Verwirrung, als das es hilft.
 
Naja, ich sagte ja , insofern das für ihn relevant ist , und klar ist eine DB sinnvoller, allerdings ist es für den TE (da ich seine Kenntnisse nicht kenne) einfacher die ID einfach in eine Datei zu schreiben und wieder auszulesen, falls er den Wert immer weiter erhöhen möchte 🙂
 

Neue Themen


Zurück
Oben