ArrayList - überschreibt Elemente

Hallo Zusammen,

komme aus dem C-Bereich und versuche Java zu lernen

Ich schreibe gerade ein Easy Lagerverwaltungsprogramm bei dem in einer Liste Artikel gespeichert werden sollen.
Klasse Artikel hat dann die Instanzvariablen ArtikelName,Anzahl und Nummer.

Ausgeben der Liste und Löschen eines Artikels funktioniert.

Problem :

Jedes mal wenn ich ein neues Objekt Artikel anlege wird zwar der Liste zwar ein neues Element hinzugefügt,
das Alte bzw. alle Alten Elemente haben aber die gleichen Werte wie das neue.

Wenn ich zB Artikelnr 1 Artikel nr 2 und dannach Artikel nr 3 eingeben und anschließend die Liste ausgeben
steht 3 mal Artikelnr 3 in der Ausgabe.

Das Problem lässt sich lösen wenn ich
Artikel a = new Artikel();
a.ArtikelAdden();

Artikel b = new Artikel();
b.ArtikelAdden();

Da ich Anfangs aber nicht weiß wieviele Objekte ich insgesamt Erstellen woll ist das keine Option.

Hoffe ihr habt mein Problem Verstanden 😳:rtfm:


Wäre echt super wenn ihr mir helfen könntet.

Hier der Code um den es geht

Java:
public class Start extends Verwaltung{

public static void main(String[] args) {

int auswahl;
Artikel a = new Artikel();

do{
auswahl = menue();

switch(auswahl){
case 1: ArtikelAdden(a);
break;
case 2:	ArtikelLoeschen();
break;
case 3: ListeAusgeben();	
break;
case 4: System.exit( 42 );
break;

}
}while(true);
}

//// Und hier die Methode Artikel Adden

public class Verwaltung extends Artikel {

static ArrayList<Artikel> Liste = new ArrayList<Artikel>();
static int test = 0;





public static void ArtikelAdden(Artikel neuerArt){

Scanner s = new Scanner(System.in);
System.out.println("ArtName");
ArtName = s.nextLine();
System.out.println("ArtNr");
ArtNr = s.nextInt();
System.out.println("Anzahl");
Anzahl = s.nextInt();

Liste.add (neuerArt);
System.out.println("Neuer Artikel erfolgreich angelegt");
System.out.println("MOMENTANe ARTIKEL ANZAHL---> "+Liste.size());

}

}
 
Erstmal thnx für die Schnelle Antwort.
Ich dachte eigentlich, dass ich jedes mal einen neuen Artikel in die Liste anhänge.

Kannst du mir einen Tipp Geben. wie ich das Problem löse bzw wie ich mehrere Artikel erzeuge und sie dann in die Liste hängen kann.

Es sollte ja ungefähr so ablaufen.
Erzeuge Artikel
- > Benutzer muss diesen über die Konsole Initialisieren
-----> Arikel in Liste und dann

Wenn im Menue - Artikel anlegen gewählt wird

sollte wieder ein neuer Artikel angelegt werden usw
 
Ich Versuchs über direkt Antworten ( Sry bin neu im Forum )

Erstmal thnx für die Schnelle Antwort.
Ich dachte eigentlich, dass ich jedes mal einen neuen Artikel in die Liste anhänge.

Kannst du mir einen Tipp Geben. wie ich das Problem löse bzw wie ich mehrere Artikel erzeuge und sie dann in die Liste hängen kann.

Es sollte ja ungefähr so ablaufen.
Erzeuge Artikel
- > Benutzer muss diesen über die Konsole Initialisieren
-----> Arikel in Liste und dann

Wenn im Menue - Artikel anlegen gewählt wird

sollte wieder ein neuer Artikel angelegt werden usw
 
Also du packst das in eine neue Methode die immer wieder ein Objekt mit einem Namen erstellt der durch eine zählervariable verändert wirt danach wirt das ganze in eine ArrayList geschrieben
 
Also du packst das in eine neue Methode die immer wieder ein Objekt mit einem Namen erstellt der durch eine zählervariable verändert wirt danach wirt das ganze in eine ArrayList geschrieben

TO hat kein Grundlagenwissen. Selbst für mich ist dein geschreibsel kaum nachzuvollziehen.

BTW:

Wer nichts wird, wird Wirt, wer gar nichts wird, wird Betriebswirt.


Bin über jeden Tipp Dankbar

Ein Buch zum Thema "java" kaufen. Das was du da machst hat ja nichtwirklich was mit oop zu tun. Du brauchst mehr Grundlagen.
 

Zurück
Oben