Objekt in Array abspeichern

DuffterMatze

Mitglied
Hallo, ich bin neu im Forum und auch noch totaler Anfänger in Programmierung, aber durch mein Studium bin ich jetzt zu Java gekommen und es macht mir auch echt riesig Spaß nur kommen natürlich so einige Fragen :)

Also mein Frage bezieht sich auf das abspeichern von Objekten in Arrays

Mit folgender Methode speicher ich (oder zumindest glaub ich das ^^) ein Objekt in ein Array ein (Wir sollen es mit Arrays und nich mit ArrayLists oder ähnlichem machen, deswegen muss ich das Array zuerst erweitern, da es beliebig viele abspeichern soll):
Java:
static int neuerArtikel(int artikelNr) {
		System.out.println("\nNeuen Artikel eingeben");
		System.out.println("======================");
		artikelListe = Arrays.copyOf(artikelListe, artikelListe.length+1);
		Artikel neuesAuto = new Artikel();
		artikelListe[artikelNr] = (Artikel)neuesAuto;
		while (artikelListe[artikelNr].eingeben() == false) {
			System.out.println("Fehlerhafte Eingabe!");
		}
		System.out.println("Neuer Artikel abgelegt");
		return (artikelNr + 1);
	}

und mit folgender Methode möchte ich dann eine Liste mit allen abgespeicherten Artikeln anzeigen lassen:
Java:
static void listeAnzeigen(int artikelNr) {
		System.out.println("\nArtikelliste");
		System.out.println("============");
		for (int i = 0; i < artikelNr; i++) {
			System.out.print((i + 1) + ") ");
			Artikel anzeige = (Artikel)artikelListe[i];
			System.out.println(anzeige.listEintrag());
		}
	}

Beim kompilieren gibt es kein problem, aber beim ausführen passiert es, dass wenn ich die Liste anzeigen lassen will er immer nur den zuletzt eingegebenen Artikel anzeigt, aber den sooft, so viele Eingaben ich gemacht habe (also wenn ich 5 Artikel eingegeben habe, zeigt er mir 5 mal den letzten)

Ich weiß jetzt nicht, was ihr noch an Code braucht, ich hoffe das passt so, wenn nicht, kann ich den Rest natürlich auch posten ;)

Achja vielleicht noch die einegebn() und die listEintrag() Methoden ^^

Java:
public boolean eingeben() {
		Scanner eingabe = new Scanner(System.in);
		
		try {
			System.out.print("Artikelnummer: ");
			artikelnr = eingabe.nextInt();
			System.out.print("Bezeichnung: ");
			bez = eingabe.next();
			System.out.print("Gewichte in Gramm: ");
			gew = eingabe.nextInt();
			System.out.print("Preis: ");
			preis = eingabe.nextInt();
			System.out.print("Währung: ");
			währung = eingabe.next();
			return true;
		} catch (Exception e) {
			System.out.println(e);
			return false;
		} finally {
			eingabe = new Scanner(System.in);
		}
	}

Java:
public String listEintrag() {
		String text;
		text = bez + ", " + artikelnr + ", " + gew + "g, " + preis + " " + währung;
		return text;
	}
 

Steff87

Aktives Mitglied
Hi!
Wie ist denn deine artikelListe abgespeichert? Ist es vom Typ Atrikel?
Kannst du vielleicht noch die main Methode posten, um zu sehen, wie du das ganze aufrufst.
 

Brainiac

Bekanntes Mitglied
Aufgrund dieser Zeilen:
Java:
Artikel neuesAuto = new Artikel();
artikelListe[artikelNr] = (Artikel)neuesAuto;

gehe ich mal davon aus das artikelList sowas ist:
Java:
Artikel[] artikelListe = new Artikel[10];

Daher kannst Du dir das ganze Casten (Artikel) sparen.

Der obere Part geht einfach so:
Java:
artikelListe[artikelNr] = new Artikel();
 

DuffterMatze

Mitglied
Also ich poste jetzt einfach mal die ganze klasse
Java:
import java.util.Arrays;
import java.util.Scanner;
import einkauf.Artikel;

public class Blatt2_Aufgabe3 {
	static Artikel[] artikelListe = new Artikel[0];
	static int anzArtikel = 0;
	
	public static void main (String[] argumente) {
		boolean ende = false;
		
		do {
			System.out.println("\nShopper - zur Erstellung ihrer Einkaufsliste");
			System.out.println("============================================");
			System.out.println("\nHauptmenü");
			System.out.println("\n(1) Artikel anzeigen");
			System.out.println("(2) Neuen Artikel anlegen");
			System.out.println("\n(0) Programm beenden");

			Scanner wahl = new Scanner(System.in);
			try {
				System.out.print("\nAuswahl: ");
				short auswahl = wahl.nextShort();
				
				switch (auswahl) {
				case 1:
					listeAnzeigen(anzArtikel);
					break;
				case 2:
					anzArtikel = neuerArtikel(anzArtikel);
					break;
				case 0:
					System.out.println("Programm beenden");
					ende = true;
					break;
				default:
					System.out.println("Ungültige Eingabe");
				}
			} catch (Exception e) {
				System.out.println("ZAHLEN eingeben!");
				}
			wahl = new Scanner(System.in);
		} while (!ende);
	}
	
	static int neuerArtikel(int artikelNr) {
		System.out.println("\nNeuen Artikel eingeben");
		System.out.println("======================");
		artikelListe = Arrays.copyOf(artikelListe, artikelListe.length+1);
		Artikel neuesAuto = new Artikel();
		artikelListe[artikelNr] = (Artikel)neuesAuto;
		while (artikelListe[artikelNr].eingeben() == false) {
			System.out.println("Fehlerhafte Eingabe!");
		}
		System.out.println("Neuer Artikel abgelegt");
		return (artikelNr + 1);
	}
	
	static void listeAnzeigen(int artikelNr) {
		System.out.println("\nArtikelliste");
		System.out.println("============");
		for (int i = 0; i < artikelNr; i++) {
			System.out.print((i + 1) + ") ");
			Artikel anzeige = (Artikel)artikelListe[i];
			System.out.println(anzeige.listEintrag());
		}
	}
}

Aber ob ich das caste jetzt weglasse oder nicht öndert ja im prinzip nichts am programmablauf, oder? also würde es nichts an meinem problem ändern
natürlich is mir klar, dass mein programmierstil noch nicht der schönste ist ^^

Klasse Artikel:
Java:
package einkauf;

import java.util.Scanner;

public class Artikel {
	public int anzArtikel;
	static int artikelnr;
	static String bez;
	static int gew;
	static int preis;
	static String währung;
	
	public Artikel(int k_artikelnr, String k_bez, int k_gew, int k_preis, String k_währung) {
		artikelnr = k_artikelnr;
		bez = k_bez;
		gew = k_gew;
		preis = k_preis;
		währung = k_währung;
		anzArtikel++;
	}
	
	public boolean eingeben() {
		Scanner eingabe = new Scanner(System.in);
		
		try {
			System.out.print("Artikelnummer: ");
			artikelnr = eingabe.nextInt();
			System.out.print("Bezeichnung: ");
			bez = eingabe.next();
			System.out.print("Gewichte in Gramm: ");
			gew = eingabe.nextInt();
			System.out.print("Preis: ");
			preis = eingabe.nextInt();
			System.out.print("Währung: ");
			währung = eingabe.next();
			return true;
		} catch (Exception e) {
			System.out.println(e);
			return false;
		} finally {
			eingabe = new Scanner(System.in);
		}
	}
	
	public String listEintrag() {
		String text;
		text = bez + ", " + artikelnr + ", " + gew + "g, " + preis + " " + währung;
		return text;
	}
}
 
S

SlaterB

Gast
die Attribute in Artikel sind alle static, das darf nicht sein

anzArtikel dagegen sollte ironischerweise eher statisch sein,
ansonsten wird das pro Objekt einzeln immer nur von 0 auf 1 erhöht
 

DuffterMatze

Mitglied
Ah jetzt gehts, danke :)

Was war dann das Problem? Eclipse hat mir das nur während dem Programmiern als Lösung vorgeschlagen

also was genau machst static denn? weiß nur, dass es was damit zu tun hat welche methoden bzw. klassen sie aufrufen bzw. verändern können, oder?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
missy72 Klassen Objekt Array NullPointerException Java Basics - Anfänger-Themen 3
J Hinzufügen eines Objektes in ein Objekt-Array Java Basics - Anfänger-Themen 62
J Objekt-Array dynamischer Länge aus Benutzereingaben erstellen Java Basics - Anfänger-Themen 6
H Objekt aus einem Array löschen Java Basics - Anfänger-Themen 1
H Objekt im Array speichern Java Basics - Anfänger-Themen 2
P Objekt aus String-Array erzeugen Java Basics - Anfänger-Themen 104
C Objekt soll ein Array sein. Java Basics - Anfänger-Themen 15
Z Objekt Array führt zum NullPointerException Java Basics - Anfänger-Themen 2
S 2d array als Objekt Java Basics - Anfänger-Themen 28
arjoopy Kapselung Elemente aus Objekt-Array ausgeben Java Basics - Anfänger-Themen 8
G Objekt array befüllen und ausgeben Java Basics - Anfänger-Themen 3
S Klassen Objekt- Tabelle / Dynamisches 2Dimensionales Array für Objekte Java Basics - Anfänger-Themen 6
T Integer-Objekt über Hash-Funktion in Array ablegen Java Basics - Anfänger-Themen 1
D Array Objekt wird überschrieben Java Basics - Anfänger-Themen 3
M Objekt Array an konstruktor übergeben und Initialisieren Java Basics - Anfänger-Themen 1
J Methoden Einzelnen Wert aus Objekt aus einem Array auslesen und danach sortieren Java Basics - Anfänger-Themen 8
P Objekt mit Werten aus Array füllen Java Basics - Anfänger-Themen 10
M bestimmen zu welchem Array ein Objekt "zugehört" Java Basics - Anfänger-Themen 5
J OOP Objekt in Array gespeichert, wie greife ich darauf zu? Java Basics - Anfänger-Themen 7
S Abfrage Objekt-Array nach Datentypen Java Basics - Anfänger-Themen 6
N String und Array objekt? Java Basics - Anfänger-Themen 3
T Objekt Output zu String Array Java Basics - Anfänger-Themen 4
H Objekt aus array holen anhand des Objekttypen Java Basics - Anfänger-Themen 8
V 2D - Objekt Array Problem Java Basics - Anfänger-Themen 3
K Verschiedene (Thread) Objekt-Positionen (int) in einem Array zusammenfassen Java Basics - Anfänger-Themen 3
J Objekt-Array-Testklasse Java Basics - Anfänger-Themen 5
K Inhalt eines Elements aus dem Objekt Array auslesen Java Basics - Anfänger-Themen 9
M Objekt Array - keine ausgabe! Java Basics - Anfänger-Themen 8
K Objekt an Array übergeben Java Basics - Anfänger-Themen 3
B Objekt an das Ende eines Array stecken Java Basics - Anfänger-Themen 2
F OOP Objekt Array auslesen Java Basics - Anfänger-Themen 9
N Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
M Array List Objekt Entfernen Java Basics - Anfänger-Themen 15
J Serialisierung - Array-Objekt serialisieren/deserialisieren Java Basics - Anfänger-Themen 6
C Arraylist mit string array oder hashmap oder objekt? Java Basics - Anfänger-Themen 5
J Objekt-name in Array speichern Java Basics - Anfänger-Themen 12
B Array mehrmals als Objekt erzeugen Java Basics - Anfänger-Themen 17
O Array-Objekt erstellen Java Basics - Anfänger-Themen 11
Y Objekt Array Java Basics - Anfänger-Themen 16
G Objekt Array Java Basics - Anfänger-Themen 3
J StringBuffer-Objekt soll auf Char-Array zugreifen. Java Basics - Anfänger-Themen 4
L NullPointerExceptions bei Objekt array Java Basics - Anfänger-Themen 11
D Ist ein Array immer ein Objekt? Java Basics - Anfänger-Themen 2
K Array von einem eigenen Objekt erstellen Java Basics - Anfänger-Themen 5
B Array auslesen das als Objekt geliefert wurde Java Basics - Anfänger-Themen 2
M Objekt Array Java Basics - Anfänger-Themen 3
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
Rxiiz Objekt aus ComboBox entfernen Java Basics - Anfänger-Themen 4
I JSON in Objekt umwandeln Java Basics - Anfänger-Themen 3
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
B Objekt aus generalisierter Liste entfernen Java Basics - Anfänger-Themen 11
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
Say Objekt Java Basics - Anfänger-Themen 4
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
T Wie kann man es machen das ein Objekt nicht übermalt wird Java Basics - Anfänger-Themen 2
I Entity Objekt nicht gefunden -> Webhook empfangen in der gleichen Methode (Transaktion) Java Basics - Anfänger-Themen 37
K warum kann ich das Objekt nicht erstellen ? Java Basics - Anfänger-Themen 2
K wie kann ich alle Attribute von dem Objekt(pagode) ausgeben lassen ? Java Basics - Anfänger-Themen 3
H Ein übergegebenes Objekt auf null setzen Java Basics - Anfänger-Themen 9
M BlueJ Objekt in Objektliste Java Basics - Anfänger-Themen 2
B Objekt in Klassendiagramm an fremdes Objekt weiterreichen? Java Basics - Anfänger-Themen 6
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
frager2345 Aufgabe Hash Objekt Elemente ausgeben Java Basics - Anfänger-Themen 2
amelie123456 Objekt Farbe Quellcode Java Basics - Anfänger-Themen 4
M Objekt in einem Objekt speichern Java Basics - Anfänger-Themen 9
U Warum kann ich, auf private Variablen zugreifen, wenn ich ein Objekt in der Klasse, die private Variablen hat erstelle und dort drauf zugreifen will? Java Basics - Anfänger-Themen 7
O Warum bekommen wir nicht die Referenz vom zurückgegebenen Objekt? Java Basics - Anfänger-Themen 4
K Ein Objekt Auto kennt den Inhalt seines links und rechtsstehenden Autos, wie soll man das ermöglichen Java Basics - Anfänger-Themen 2
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
melaniemueller Fernseher als Objekt Java Basics - Anfänger-Themen 9
B Datentyp für Einzelnes Objekt oder Liste Java Basics - Anfänger-Themen 9
Nina Pohl Ein Vorgang bezog sich auf ein Objekt, das kein Socket ist Java Basics - Anfänger-Themen 6
B Objekt kopieren und sämtliche Referenzen von diesem Objekt? Java Basics - Anfänger-Themen 3
S JavaFX - Objekt an neue Stage übergeben Java Basics - Anfänger-Themen 12
T Verständnisfrage Objekt Getter Setter Java Basics - Anfänger-Themen 102
P Objekt in mehreren Methoden verwenden. Java Basics - Anfänger-Themen 3
S Aufzurufendes Objekt Java Basics - Anfänger-Themen 3
CptK Überprüfen ob übergebenes Objekt zu Generics passt Java Basics - Anfänger-Themen 2
C Konstruktor ab serialisiertem Objekt Java Basics - Anfänger-Themen 4
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
P Wie rufe ich Methoden mit einer Referenz auf eine Klasse||Objekt auf Java Basics - Anfänger-Themen 4
J Input/Output Konstruktor ergänzen, der zur Datei mit einem Objekt passt Java Basics - Anfänger-Themen 0
P Ein Objekt nach einem String durchsuchen? Java Basics - Anfänger-Themen 7
S Objekt aus Arraylist in andere Arraylist kopieren? Java Basics - Anfänger-Themen 2
W Mehrfach das gleiche Attribut für ein Objekt erzeugen (mit verschiedenen Werten) Java Basics - Anfänger-Themen 2
C Arrays - deklarieren, initialisieren? Ist das ein Objekt? Java Basics - Anfänger-Themen 3
B Interface List - Objekt übergeben? Einzelnes Objekt geht, aber Liste nicht? Java Basics - Anfänger-Themen 4
B Objekt von EJB in Controller (CDI) - Klasse füllen? Java Basics - Anfänger-Themen 3
L Zufälliges Objekt aus der ArraylList ohne java.util.Random Java Basics - Anfänger-Themen 56
N LocalTime einem Objekt zuweisen Java Basics - Anfänger-Themen 2
N Länge eines Arrays in einem Objekt testen Java Basics - Anfänger-Themen 51
M Wie kann ich ein Objekt erstellen, wenn sich der Klassenname in einer Variablen befindet? Java Basics - Anfänger-Themen 10
R Zugriff auf den Index eines Arrays, welches ein Objekt ist. Java Basics - Anfänger-Themen 4
tom.j85 Doppelte Foreach Schleife: Am Ende wird immer das Gleiche Objekt eingefügt Java Basics - Anfänger-Themen 4
J RSA Verschlüsselung Testen / byte[] in Objekt umwandeln Java Basics - Anfänger-Themen 1
M ArrayList - Objekt kopieren und ändern Java Basics - Anfänger-Themen 11
L Objekt an Methode übergeben Java Basics - Anfänger-Themen 4
S Spiel-Programmieren. Wenn ein Objekt den anderen berührt. Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben