Input/Output Objekte per Eingabe erzeugen

PascalC

Mitglied
Hallo,

Ich habe ein Programm geschrieben wo man per Nutzereingabe (Scanner) Objekte erzeugen kann.

Leider kann man immer nur ein Objekt einer Klasse erzeugen, wenn man ein Neues erzeugt wird das Alte mit den neuen Daten überschrieben.

Ich würde aber gerne mehrere Objekte derselben Klasse erzeugen und diese auch in eine Arraylist stellen. Oder wäre es besser ein festdefiniertes Array zu benutzen, also die Objekte vorher zu erstellen und dann vom Nutzer überschreiben zu lassen?

Kann man dies machen? Die einzige Idee, die ich zur Umsetzung habe, wäre eine Schleife, aber ich bin mir nicht sicher wie ich die implementieren kann. Hier mal noch das Interface (ohne die benutzten Klassen:

Java:
import java.util.Scanner;

public class Interface {

	Scanner scan = new Scanner (System.in);
	
	public void start()
	{
		Spieler typ = new Spieler(null, 0, null, 0);
		Sprit schnaps = new Sprit(null, 0.7, 1);
		Mischgetränke pussy = new Mischgetränke (null, 1);
		Mischung drink = new Mischung(null, 0.5, 1);
		Bar standart = new Bar();
		boolean forever = true;
		int wahl;
		double ml;
		
		int antwort;
		String [] auswahl = {"1 - Spieler erstellen", "2 - Getraenke einkaufen", "3 - Getraenke mischen", "4 - Trinken","5 - Bestand anzeigen", "0 - Nach Hause gehen :("};
		
		for (String index: auswahl)
			System.out.println(index);
		
		do
		{
		System.out.println("\n Was willst du tun?");
		antwort = scan.nextInt();
		
			switch(antwort)
			{
			case 1:
				{
					System.out.println("Wie heißt du?");
					typ.name = scan.next();
				
					System.out.println("Wie alt bist du?");
					typ.alter = scan.nextInt();
					assert typ.alter >= 18 : "Mach dich ab, du Milchbubi!";
				
					System.out.println("Wie ist dein Trinkverhalten?");
					typ.trinkverhalten = scan.next();
				
					System.out.println("Das bist du:");
					System.out.println(typ.toString());
					break;
					}
			case 2:
					{
					System.out.println("Willst du Schnaps(1) oder Mischgetränke(2) einkaufen?");
					wahl = scan.nextInt();
				
					switch (wahl)
					{
					case 1:
						{
							System.out.println("Welchen Schnaps willst du?");
							schnaps.name = scan.nextLine();
							schnaps.name = scan.nextLine();
					
							System.out.println("Wieviel Prozent hat dieses Teufelszeug?");
							schnaps.prozent = scan.nextDouble();
					
							standart.schnapsKaufen(schnaps);
							break;
						}
					
					case 2:
						{
							System.out.println("Welches Mischgetränk willst du?");
							pussy.name = scan.nextLine();
							pussy.name = scan.nextLine();
						
							standart.mischGetränkeKaufen(pussy);
							break;
						}
					
					default:
						System.out.println("Ungueltige Eingabe!");
						break;
					}
					break;
				}
			case 3:
					{
						System.out.println("Wieviel Schnaps willst du benutzen? (Vorsicht, es gibt nur 0,5er Glaeser!)");
						schnaps.menge = scan.nextDouble();
						schnaps.mischen(schnaps.menge, pussy);
						
						standart.hinzufuegen(drink);
						break;
					}
			case 4:
					{
						System.out.println("Was willst du trinken? 1 - Schnaps 2 - Alkoholfrei 3 - Mischung");
						wahl = scan.nextInt();
						
						switch(wahl)
						{
							case 1:
							{
								System.out.println("Welche Menge willst du vernichten?");
								ml = scan.nextDouble();
								schnaps.trinken(ml, typ);
								break;
							}
							case 2:
							{
								System.out.println("Wieviel willst du, Kleiner?");
								ml = scan.nextDouble();
								pussy.trinken(ml);
								break;
							}
							case 3:
							{
								System.out.println("Welche Menge willst du vernichten?");
								ml = scan.nextDouble();
								drink.trinken(ml, typ);
								break;
							}
							default:
								System.out.println("Ungueltige Eingabe!");
								break;
						}
						
					}
			case 5:
					{
					System.out.println(typ.toString());
					standart.bestand();
					break;
					}
			default :		
					{
					System.exit(0);
					}
		}
	}while (forever = true);
	}
}
 

PascalC

Mitglied
Falls es jemand interessiert, ich konnte das Problem dadurch lösen die Objekte lokal in den "cases" anzulegen und mit add dem jeweiligen Array hinzuzufügen. Die anderen Methoden greifen jetzt dadurch auf das jeweilige Objekt zu, indem sie es mit einer containsabfrage aus dem Array auslesen.

Hier noch (grob) der geänderte Code:
Java:
 import java.util.ArrayList;
import java.util.Scanner;

public class Interface {

	Scanner scan = new Scanner (System.in);
	
	public void start()
	{
		ArrayList<Spieler> team = new ArrayList<Spieler>();
		ArrayList<Sprit> schnappes = new ArrayList<Sprit>();
		ArrayList<Mischgetränke> mischgetränke = new ArrayList<Mischgetränke>();
		ArrayList<Mischung> mischung = new ArrayList<Mischung>();
		Mischgetränke pussy = new Mischgetränke (null, 1);
		Mischung drink = new Mischung(null, 0.5, 1);
		Bar standart = new Bar();
		boolean forever = true;
		int wahl;
		double ml;
		String sagsmir;
		
		int antwort;
		String [] auswahl = {"1 - Spieler erstellen", "2 - Getraenke einkaufen", "3 - Getraenke mischen", "4 - Trinken","5 - Bestand anzeigen", "0 - Nach Hause gehen :("};
		
		for (String index: auswahl)
			System.out.println(index);
		
		do
		{
		System.out.println("\n Was willst du tun?");
		antwort = scan.nextInt();
		
			switch(antwort)
			{
			case 1:
				{
					Spieler typ = new Spieler(null, 0, null, 0);
					
					System.out.println("Wie heißt du?");
					typ.name = scan.next();
				
					System.out.println("Wie alt bist du?");
					typ.alter = scan.nextInt();
					assert typ.alter >= 18 : "Mach dich ab, du Milchbubi!";
				
					System.out.println("Wie ist dein Trinkverhalten?");
					typ.trinkverhalten = scan.next();
				
					System.out.println("Das bist du:");
					System.out.println(typ.toString());
					team.add(typ);
					break;
					}
			case 2:
					{
					System.out.println("Willst du Schnaps(1) oder Mischgetränke(2) einkaufen?");
					wahl = scan.nextInt();
				
					switch (wahl)
					{
					case 1:
						{
							Sprit schnaps = new Sprit(null, 0.7, 1);
							
							System.out.println("Welchen Schnaps willst du?");
							schnaps.name = scan.next();
					
							System.out.println("Wieviel Prozent hat dieses Teufelszeug?");
							schnaps.prozent = scan.nextDouble();
					
							standart.schnapsKaufen(schnaps);
							break;
						}
					
					case 2:
						{
							System.out.println("Welches Mischgetränk willst du?");
							pussy.name = scan.next();
						
							standart.mischGetränkeKaufen(pussy);
							break;
						}
					
					default:
						System.out.println("Ungueltige Eingabe!");
						break;
					}
					break;
				}
			case 3:
					{
						System.out.println("Welchen Schnaps willst du benutzen?");
						sagsmir = scan.next();
						standart.bestand();
						
						if (schnappes.contains(sagsmir))
						{
							int i = team.indexOf(sagsmir);
							System.out.println("Wieviel Schnaps willst du benutzen? (Vorsicht, es gibt nur 0,5er Glaeser!)");
							schnappes.get(i).menge = scan.nextDouble();
							schnappes.get(i).mischen(schnappes.get(i).menge, pussy);
							standart.hinzufuegen(drink);
						}
						
						else
						{
							System.out.println("Sorry, das haben wir nicht da");
						}
						break;
					}
			case 4:
					{
						System.out.println("Was willst du trinken? 1 - Schnaps 2 - Alkoholfrei 3 - Mischung");
						wahl = scan.nextInt();
						
						switch(wahl)
						{
							case 1:
							{
								System.out.println("Wer soll trinken?");
								System.out.println(team.toString());
								sagsmir = scan.next();
								
								if (team.contains(sagsmir))
								{
									int i = team.indexOf(sagsmir);
									
									System.out.println("Was soll getrunken werden?");
									sagsmir = scan.next();
									
									if (schnappes.contains(sagsmir))
									{
										int j = team.indexOf(sagsmir);
										System.out.println("Welche Menge willst du vernichten?");
										ml = scan.nextDouble();
										schnappes.get(j).trinken(ml, team.get(i));
										break;
									}
									
									else
									{
										System.out.println("Sorry, das haben wir nicht da");
									}
								}
								
								else
								{
									System.out.println("Diesen Spieler kenne ich nicht!");
								}
								break;
							}
							case 2:
							{
								System.out.println("Wer soll trinken?");
								team.toString();
								sagsmir = scan.next();
								
								if (team.contains(sagsmir))
								{
									System.out.println("Wieviel willst du, Kleiner?");
									ml = scan.nextDouble();
									pussy.trinken(ml);
								}
								
								else
								{
									System.out.println("Sowas haben wir hier nicht!");
								}
								break;
							}
							case 3:
							{
								System.out.println("Wer soll trinken?");
								team.toString();
								sagsmir = scan.next();
								
								if (team.contains(sagsmir))
								{
									int i = team.indexOf(sagsmir);
									
									System.out.println("Was soll getrunken werden?");
									sagsmir = scan.next();
									
									if (schnappes.contains(sagsmir))
									{
										int j = team.indexOf(sagsmir);
										System.out.println("Welche Menge willst du vernichten?");
										ml = scan.nextDouble();
										drink.trinken(ml, team.get(i));
										break;
									}
									
									else
									{
										System.out.println("Sorry, das haben wir nicht da");
									
									}
								}
								
								else
								{
									System.out.println("Diesen Spieler kenne ich nicht!");
								}
								break;
							}
							default:
								System.out.println("Ungueltige Eingabe!");
								break;
						}
						break;
					}
			case 5:
					{
					System.out.println(team.toString());
					standart.bestand();
					break;
					}
			default :		
					{
					System.exit(0);
					}
		}
	}while (forever = true);
	}
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L OOP Neues Objekt bei jeder Eingabe erstellen (Objekte speichern?) Java Basics - Anfänger-Themen 10
I Zapier -> wie werden Objekte gespeichert? Java Basics - Anfänger-Themen 10
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
K Hab ich dass so richtig erklärt (Objekte und Referenzen)? Java Basics - Anfänger-Themen 5
J Objekte in JSON speichern?? Java Basics - Anfänger-Themen 1
I Objekte in ShareProject speichern um später zu nutzen Java Basics - Anfänger-Themen 4
J Objekte Java Basics - Anfänger-Themen 22
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
Hzrfa Objekte, Referenz Java Basics - Anfänger-Themen 5
T 3D Objekte verarbeiten Java Basics - Anfänger-Themen 2
N Welche Objekte kann man zu einem Set hinzufügen Java Basics - Anfänger-Themen 4
I XML einlesen und Objekte bekommen Java Basics - Anfänger-Themen 2
W Objekte einer ArrayList in txt-datei schreiben mit Paths? Java Basics - Anfänger-Themen 2
Encera Zugriff auf Map-Objekte Java Basics - Anfänger-Themen 3
E Objekte löschen Java Basics - Anfänger-Themen 9
P Array-Objekte-Aufruf Java Basics - Anfänger-Themen 22
Encera Auf Objekte aus anderer Klassen zugreifen Java Basics - Anfänger-Themen 20
P Zähler Variable für mehrere Objekte Java Basics - Anfänger-Themen 6
B Objekte verschwinden beim Übersetzen Java Basics - Anfänger-Themen 5
D Zwei verschiedene Intellij Projekte, wie benutze ich wechselseitig objekte Java Basics - Anfänger-Themen 8
E Rekursiv Objekte erzeugen - geht das? Java Basics - Anfänger-Themen 2
T Collections Sind Subklassen-Objekte in Listen mit Generics erlaubt? Java Basics - Anfänger-Themen 16
F Aus eingelesener Datei korrekt Objekte erzeugen Java Basics - Anfänger-Themen 5
G Übergeordnete Objekte abrufen Java Basics - Anfänger-Themen 9
B Bin komplett am verzweifeln :( Verkettete Liste die Objekte hat Attribut auslesen Java Basics - Anfänger-Themen 14
A Objekte mit Parametern in eine Liste packen Java Basics - Anfänger-Themen 19
B Objekte, bspw. konkret Arraylists,manuell aus Speicher löschen? Java Basics - Anfänger-Themen 70
S Objekte von zwei klassen in zwei verschiedene Textdateien schreiben Java Basics - Anfänger-Themen 5
D Wie Objekte im JFrame frei bewegen lassen? Java Basics - Anfänger-Themen 3
Spandeli8 Erzeugte Objekte gegenüber Bildern hervorheben in Java Processing Java Basics - Anfänger-Themen 1
J Zwei Objekte vergleichen Java Basics - Anfänger-Themen 8
L Werte von Objekte addieren Java Basics - Anfänger-Themen 14
U Objekte in LinkedList löschen und editieren Java Basics - Anfänger-Themen 14
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
G Methoden Informationen aus zwei Objekte bekommen? Java Basics - Anfänger-Themen 6
P Globale Objekte Java Basics - Anfänger-Themen 2
C Nachträglich neue grafische Objekte hinzufügen Java Basics - Anfänger-Themen 7
D Interaktion zweier Objekte Java Basics - Anfänger-Themen 5
M Objekte in Array speichern und ausgeben Java Basics - Anfänger-Themen 17
S Objekte indiziert erstellen Java Basics - Anfänger-Themen 27
M Warum dürfen Objekte einer Klasse auf statische Variablen dieser Klasse referenzieren? Java Basics - Anfänger-Themen 10
M Objekte mittels equals vergleichen Java Basics - Anfänger-Themen 14
C Fernseher-Aufgabe (Methoden, Klassen und Objekte) Java Basics - Anfänger-Themen 63
N Typebound Objekte einer Arraylist hinzufügen Java Basics - Anfänger-Themen 7
A (Objekte Java Basics - Anfänger-Themen 6
Y Klassen Klassen und Objekte Java Basics - Anfänger-Themen 3
Y Klassen Klassen und Objekte mit set und get Java Basics - Anfänger-Themen 0
U Objekte in einer LinkedList sortieren Java Basics - Anfänger-Themen 5
N Methode um Objekte einer Liste hinzuzufügen Java Basics - Anfänger-Themen 1
G Java Objekte auf Duplikate testen Java Basics - Anfänger-Themen 4
B Neue Liste erstellen, wenn Objekte bestimmte Referenz hat / Gruppierung von Einträgen Java Basics - Anfänger-Themen 12
M Implementieren einer Datenstruktur, welche nur 5 Objekte speichert Java Basics - Anfänger-Themen 3
M Objekte miteinander vergleichen Java Basics - Anfänger-Themen 18
C Verschiedene Objekte in einer Liste speichern Java Basics - Anfänger-Themen 6
J Java GUI- Objekte Position per Quelltext bestimmen Java Basics - Anfänger-Themen 4
G Objekte in Methoden? Java Basics - Anfänger-Themen 13
H Auf Objekte bzw Variabeln aus einer anderen Methode zugreifen Java Basics - Anfänger-Themen 7
S Frage Klasse und Objekte Java Basics - Anfänger-Themen 2
K Boolean in einer Methode um 2 Objekte zu vergleichen Java Basics - Anfänger-Themen 12
I Objekte Hilfe Java Basics - Anfänger-Themen 8
G Klassen und Objekte Java Basics - Anfänger-Themen 2
W Verschachtelte Objekte wieder auspacken Java Basics - Anfänger-Themen 3
R Attribute mehrerer Objekte ausgeben Java Basics - Anfänger-Themen 3
C Objekte und Konstruktoren Java Basics - Anfänger-Themen 2
F Erstellen zweier Objekte mit dem selben Inhalt Java Basics - Anfänger-Themen 1
O ObjectOutputStream Anzahl Objekte festhalten Java Basics - Anfänger-Themen 17
R Objekte aus Array als String + kommasepariert speichern Java Basics - Anfänger-Themen 12
X Objekte einer ArrayList richtig ausgeben? Java Basics - Anfänger-Themen 8
J Best Practice Dateiinhalte validieren und auf Objekte mappen Java Basics - Anfänger-Themen 3
B Automatisch Objekte erzeugen mit verschiedenen Namen Java Basics - Anfänger-Themen 4
der_Schokomuffin Hilfe gesucht beim Thema Objekte übergeben! Java Basics - Anfänger-Themen 2
S Konstruktor, Objekte Java Basics - Anfänger-Themen 4
PaperHat Objekte in Array vergleichen Java Basics - Anfänger-Themen 9
B HTML Code / Seite auslesen und JAVA Objekte erstellen Java Basics - Anfänger-Themen 12
PaperHat Programmieraufgabe - Objekte in Objekten Java Basics - Anfänger-Themen 2
E Methode mit Parametern um Objekte zu übergeben Java Basics - Anfänger-Themen 4
V Collections Objekte einer ArrayList in der main() ausgeben Java Basics - Anfänger-Themen 9
T Klassen Klassenübergreifende Objekte erstellen lassen Java Basics - Anfänger-Themen 5
A Objekte verknüpfen Java Basics - Anfänger-Themen 2
M Objekte mit einer Schleife mehrmals erzeugen Java Basics - Anfänger-Themen 17
B Klassen Alle Unter-Objekte durchlaufen in der Hauptklasse Java Basics - Anfänger-Themen 10
B Objekte zählen/ Vererbung/ Kopplung/ Interface/ Abstract Class Java Basics - Anfänger-Themen 5
S Zählen der Zeiger auf Objekte Java Basics - Anfänger-Themen 35
J Methoden Equals Methode für Integer und Objekte überschreiben? Java Basics - Anfänger-Themen 9
B Erste Schritte Objekte von JFrame der Fenstergröße anpassen Java Basics - Anfänger-Themen 3
M Klassen und Objekte Java Basics - Anfänger-Themen 2
J Objekte und Abstrakte Klassen Java Basics - Anfänger-Themen 2
J Array Objekte einer Klasse zuordnen Java Basics - Anfänger-Themen 15
H Interface Objekte speichern und laden (serialisieren/deserialisieren) Java Basics - Anfänger-Themen 1
Orkanson Objekte in ein Array einfügen Java Basics - Anfänger-Themen 5
X Objekte in ArrayList einfügen Java Basics - Anfänger-Themen 10
L Vorherige Objekte zählen und ausgeben Java Basics - Anfänger-Themen 11
Orkanson Objekte und Klassen Java Basics - Anfänger-Themen 8
R Objekte zur Laufzeit in Schleife erzeugen und in ArrayList ablegen Java Basics - Anfänger-Themen 4
D Objekte-Fragen Java Basics - Anfänger-Themen 1
T Objekte in der Methode Java Basics - Anfänger-Themen 8
F Alle Objekte einer Klasse nach Eigenschaft durchsuchen Java Basics - Anfänger-Themen 8
R Interface Eigene Objekte in Listen sortieren mit Interface Comparable Java Basics - Anfänger-Themen 5
E Eine Instanzvariable und zwei Objekte Java Basics - Anfänger-Themen 14

Ähnliche Java Themen

Neue Themen


Oben