Klassen über Main Klasse in einer anderen Klasse ein Objekt erstellen

bc2356

Mitglied
Hi, wir sind gerade am Anfang von Java und haben gerade das Programmieren von Klassen und erstellen von Objekten , sowie dessen Auslesung gelernt.
Nun habe ich folgendes Problem:

Ich habe folgende Main Klasse
Java:
/**
*
* Main-Klasse zum Testen der Implementierung.
*
* @author ---
*
*/


public class Main {

	/**
	* @param args Keine Übergangsvariablen.
	*/
	
	public static void main(String[] args){

		//Erstellung der Objekte.
			Container container1 = new Container(ContainerType.CUP, ContainerCapacity.MEDIUM,1);
			Espresso espresso1 = new Espresso(CoffeeType.LIGHT,1);
			Milk milk1 = new Milk(1);
			Milk milk2 = new Milk(2);
			Sweetener sweetener1 = new Sweetener(SweetenerType.SYRUP,1);
			Sweetener sweetener2 = new Sweetener(SweetenerType.SUGAR,1);

			
			Coffee coffee1 = new Coffee(
				new Container(ContainerType.CUP, ContainerCapacity.MEDIUM,1),
				new Espresso(CoffeeType.LIGHT,1),
				new Milk(1),
				new Milk(2),
				new Sweetener(SweetenerType.SYRUP,1),
				new Sweetener(SweetenerType.SUGAR,1),
				1
			);


		//Ausgabe
		
		coffee1.printCoffee();
		System.out.println("");
		milk1.printMilk();
		container1.printContainer();
		sweetener1.printSweetener();

		

		
	}


}

meine Coffee - Klasse
Java:
/**
* Representiert das komplette Kaffeegetränk.
* @author ---
*
*/


class Coffee {

	//Attribute

	/*Kaffee Behälter*/
	Container container;
	
	/*verwendeter Espresso*/
	Espresso espresso;

	/*Portion Milch 1*/
	Milk milk_1;
	
	/*Portion Milch 2*/
	Milk milk_2;

	/*Portion Süßungsmittel 1*/
	Sweetener sweetener_1;
	
	/*Portion Süßungsmittel 2.*/
	Sweetener sweetener_2;

	/*Gesamtpreis des Getränks*/
	int price;



	//Methoden

	/** Konstruktor
	*@param c Behälter des Kaffees
	*@param e Espressostärke
	*@param m1 Milch1
	*@param m2 Milch2
	*@param s1 Sweetener1
	*@param s2 Sweetener2
	*@param p Preis
	*/
	Coffee(Container c, Espresso e, Milk m1, Milk m2, Sweetener s1, Sweetener s2, int p) {
		container = c;
		espresso = e;
		milk_1 = m1;
		milk_2 = m2;
		sweetener_1 = s1;
		sweetener_2 = s2;
		price = p;
	}
	

	/** Ausgabe der gesamten Daten des Kaffeegetränks. */
	void printCoffee() {
		
		System.out.print("gewählter Behälter: ");
		System.out.println(container);
		System.out.print("gewählte Espresso-Stärke: ");
		System.out.println(espresso);
		System.out.println(milk_1);
		System.out.println(milk_2);
		System.out.print("Süßungsmittel: ");
		System.out.println(sweetener_1);
		System.out.println(sweetener_2);
		System.out.print("Preis des Getränks: ");
		System.out.println(price);
	}
	
}

und zB eine Klasse "Container"
Java:
/**
*
* Representiert die Klasse: Behälter.
* 
* @author ---
*/


class Container {

	//Attribute

		/** Art des Behälters */
		ContainerType type;
	
		/** Kapazität des Behälters */
		ContainerCapacity capacity;
	
		/** Preis des Behälters */
		int price;

	//Methoden
		
		/** Konstruktor für Behälter */
		Container(ContainerType t , ContainerCapacity c, int p) {
			type = t;
			capacity = c;
			price = p;
		}
		
		/** Ausgabe der Behälter-Daten */
		void printContainer() {
			System.out.print("Art des Behälters: ");
			System.out.println(type);
			System.out.print("Kapazität des Behälters: ");
			System.out.println(capacity);
			System.out.print("Preis des Behälters: ");
			System.out.println(price);
		}

}

weiterhin eine ContainerType Klasse
Java:
/**
*
* Aufzählung der Behälter-Arten.
*
* @author ---
*
*/


enum ContainerType {
	BEAKER,CUP,GLASS;
}

Es geht um ein Kaffeegetränk, welches verschiedene Attribute bekommen soll wie zB Starker/Mittlerer/Schwacher Espresso , Große/mittlere/kleine Tasse/Glas/Becher, Milch , Zucker/Sirup/Süßstoff usw.

Die ersten Aufgaben beinhalten lediglich die Erstellung der Klassen und den Abruf der einzelnen über die Main-Klasse wie zb Abrufen des Containers sowie dessen Ausgabe
Java:
Container testContainer = new Container(ContainerType.CUP, ContainerCapacity.SMALL, 1);

testContainer.printContainer()

Dabei kommen dann Dinge raus wie:

BehälterArt=CUP
BehälterKapazität=SMALL
Preis=1

das funktioniert alles mit den jeweiligen Klassen.

Nun müssen wir eine Coffee Klasse erstellen und über diese, alle Daten des gesamten Kaffe-getränks auslesen.
dh es soll etwas in der Ausgabe stehen wie:

Tasse(mittel), Espresso(schwach),Milch, Zucker

Nun, bei meiner Ausführung gibt er mir in der Konsole folgendes aus:


gewõhlter Behõlter: Container@36a06816
gewõhlte Espresso-Stõrke: Espresso@5d11985e
Milk@2e2a730e
Milk@64e7b3cf
S³▀ungsmittel: Sweetener@27ce0eca
Sweetener@492d0430
Preis des Getrõnks: 1

Preis von einer Portion Milch: 1
Art des Behõlters: CUP
Kapazitõt des Behõlters: MEDIUM
Preis des Behõlters: 1
Art des S³▀ungsmittels: SYRUP
Preis: 1




wobei der untere Teil noch das Auslesen der einfachen Aufgaben war, wie oben beschrieben. Habe ich nur rein um zu sehen obs denn noch klappt.

Kann mir vllt jemand einen Tipp geben , wie ich statt zb
gewählter Behälter: Container@36a06816

-> gewählter Behälter: CUP ( LARGE ) oder etwas wie
gewählter Behälter :
Art : CUP
Kapazität: LARGE

bekomme?
 
Zuletzt bearbeitet:

bc2356

Mitglied
Hey Danke für den Tip, hab mir jetzt zwar einige Beispiele dazu angesehen, aber mit der Anwendung auf meine Aufgabe hat es nicht geklappt!
 
M

Marcinek

Gast
Hi,

Wie sieht deine toString Methode aus?? Sie muss sich in der klasse Container befinden.


Gruss martin
 

mspindler

Mitglied
Hallo,

java bietet zwei verschiedene toString()- Methoden an.
Unüberschrieben wird die toString()- Methode von Object genommen, dort wird dann der Klassenname + HashWert angegeben.
Dieser HashWert beschreibt die Speicheradresse deines Objekts.
 

bc2356

Mitglied
Ja also meine Professorin hats mir jetzt erklärt, obwohl das erst nächstes Semester kommt:

in class Container einfügen:

Java:
	public String toString()  {
		return "- Art: " + type + "; Kapazität: " + capacity + "; Preis: " + price;
	}

in class coffee einfügen:

Java:
//toString()Methode von Container , für main
	public String toString(){

		return "Kaffeegetränk \n" + container.toString() + "\n" + 
			espresso.toString() + milk_1 + milk_2 + sweetener_1 + sweetener_2 + 
			"- Preis: " +price;
	}

und in Main.class

Java:
String kaffee = coffee1.toString();
		System.out.println( kaffee );

also Sie hat es mir erklärt , dass man den String quasi erst übesetzen muss, bevor man ihn nach der Übergabe ausgeben muss.

hätte es aber einfach so machen können:

Coffee.java
Java:
/** Ausgabe der gesamten Daten des Kaffeegetränks. */
	void printCoffee() {
		container.printContainer();
		espresso.printEspresso();
		milk1.printMilk();
		milk2.printMilk();
		sweetener1.printSweetener();
		sweetener2.printSweetener();
		System.out.println("Gesamtpreis: "+price);
		

	}

anstatt meiner oben angegebenen System.print.outln ....
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Array über ein Ausgabemethode in main ausgeben Java Basics - Anfänger-Themen 31
R Fragen über Fragen, main-Methode und Co. Java Basics - Anfänger-Themen 32
I Nur main-Methode über Konsole aufrufbar? Java Basics - Anfänger-Themen 3
C Rohfassung von Spielbrett über Main ausgeben Java Basics - Anfänger-Themen 12
richis-fragen GlassPane über JScrollPane legen Java Basics - Anfänger-Themen 6
A Server - Client Nachrichtenaustausch über Eventbus Java Basics - Anfänger-Themen 12
P Neue Java v8 JRE Version nicht über alte drüber installierbar: Wie sonst? Java Basics - Anfänger-Themen 7
D Downloadfortschritt von Datei über Google Drive API v3 Java Basics - Anfänger-Themen 10
B großzügiges Pixelraster über Bildschirm legen Java Basics - Anfänger-Themen 7
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
L Beim Java Programmstart, mehrere Parameter über die Kommandozeile übergeben Java Basics - Anfänger-Themen 9
sserio Iterierung über ein zweidimensionales Array Java Basics - Anfänger-Themen 16
H Eine Methode über Actionlistener beenden Java Basics - Anfänger-Themen 8
S Java über SSH Java Basics - Anfänger-Themen 13
X Wie erreiche ich, dass ein Robot weitere Attribute hat, die nicht materialisiert sind, sondern nur über get/ set-Methoden simuliert sind? Java Basics - Anfänger-Themen 1
M Wie können Klassen nicht-materialisierte Attribute haben, die nur über get/ set-Mehoden simuliert sind? Java Basics - Anfänger-Themen 6
D Best Practice Ausgabe über direkte Ausgabe oder try-catch? Java Basics - Anfänger-Themen 13
R Eigenschaft über Parameter auslesen und ändern Java Basics - Anfänger-Themen 15
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
W char über die Konsole? Java Basics - Anfänger-Themen 7
EchtKeineAhnungManchmal Hallo :) ich bekomme es nicht hin eine Fehlermeldung auszugeben über die GUI Java Basics - Anfänger-Themen 3
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
J Wert zurückgeben über get Methode Java Basics - Anfänger-Themen 8
J Eintrag Combobox über einen String auswählen Java Basics - Anfänger-Themen 3
A Array Ansprache einer Zelle über Punktnotation? Java Basics - Anfänger-Themen 3
O Java über cmd benutzen ? Java Basics - Anfänger-Themen 5
J Variablenzugriff über string Java Basics - Anfänger-Themen 18
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
H Methode über String Wert aufrufen Java Basics - Anfänger-Themen 8
M Java Kompilieren über Package grenzen hinaus Java Basics - Anfänger-Themen 4
M Arrays mit mehreren Werten über JOptionPane initialisieren Java Basics - Anfänger-Themen 12
Tino1993 Ellipse über draw Funktion ohne spur wandern lassen Java Basics - Anfänger-Themen 6
M Mehrere Datenbank zugriffe über tomee.xml regeln? Java Basics - Anfänger-Themen 1
N Input/Output Eine Frage über system.out.println. Java Basics - Anfänger-Themen 10
J Array über Getter erlangen Java Basics - Anfänger-Themen 34
S While-Schleife geht in Endlosschleife über, warum? Java Basics - Anfänger-Themen 6
B OOP-Anfänge über CMD + Editor Java Basics - Anfänger-Themen 30
G Variablen Array Länge über den Konstruktor definieren Java Basics - Anfänger-Themen 4
L Addition von Arrays über die Parameterliste Java Basics - Anfänger-Themen 11
C Datei über relative Pfade einlesen Java Basics - Anfänger-Themen 6
1 Erste Schritte Was denkt ihr über eines meiner ersten Javaprogramme? Java Basics - Anfänger-Themen 2
S Allgemeine Frage über Generics und Vererbungen Java Basics - Anfänger-Themen 5
J Button über Pfeiltasten bewegen Java Basics - Anfänger-Themen 8
E Objekt durch Benutzer über Konsole erzeugen - Java Java Basics - Anfänger-Themen 3
N Eingabe Kommazahlen über Scanner Java Basics - Anfänger-Themen 2
T DoWhile Schleife über mehrere Mothoden Java Basics - Anfänger-Themen 5
C Collections List über Interface zugreifen Java Basics - Anfänger-Themen 32
J Gefilterten Stream über die Konsole ausgeben Java Basics - Anfänger-Themen 1
S Variablen Klassenvariable über Objekt aufrufen Java Basics - Anfänger-Themen 16
S Bilder über Socket Senden Java Basics - Anfänger-Themen 1
K Textdatei auslesen und über Mqtt schicken Java Basics - Anfänger-Themen 4
L Iterieren über eine CSV Datei Java Basics - Anfänger-Themen 7
I GUI über Eclipse oder NetBeans Java Basics - Anfänger-Themen 23
S Klassenaufruf über JFrame Button Java Basics - Anfänger-Themen 3
Java The Hutt SetWerte über verschiedene Klassen Java Basics - Anfänger-Themen 16
L Zugriff auf Attribute eins Objekts über ActionListener Java Basics - Anfänger-Themen 4
O Methode über Leerzeichen Java Basics - Anfänger-Themen 13
I OOP Objektnamen über die Konsole richtig einlesen Java Basics - Anfänger-Themen 9
A Variablen Variablenwert über Konstruktor ändern Java Basics - Anfänger-Themen 3
J MySQL Datumsabfrage über ResultSet in Java-Servlet Java Basics - Anfänger-Themen 4
CptK Interface Bilder über Bildschirm bewegen, bis der Abstand zum vorherigen zu groß wird Java Basics - Anfänger-Themen 13
dapzoo Class File Version zu niedrig? Ausführen über Eingabeaufforderung nicht möglich Java Basics - Anfänger-Themen 14
J Punkt auf,über,unter oder zwischen 2 Geraden Java Basics - Anfänger-Themen 14
CptK Interface Bild über Methode ändern funktioniert nicht Java Basics - Anfänger-Themen 4
R Keine Verbindung zu MySql über Netbeans Java Basics - Anfänger-Themen 15
E Best Practice Jar-file mit zwei Klassen und externer Bibliothek über Konsole erzeugen Java Basics - Anfänger-Themen 13
J Aufruf einer Methode über einen String Java Basics - Anfänger-Themen 11
G Arraynamen über eine Schleife ansprechen Java Basics - Anfänger-Themen 4
S Bild über JButton legen Java Basics - Anfänger-Themen 3
temi Druckeransteuerung über ESC-Sequenz Java Basics - Anfänger-Themen 21
M Methodenaufruf über SQL UPDATE Java Basics - Anfänger-Themen 8
B Könnte jemand über dieses jurze Javaprogramm schauen? Irgendwas funktioniert mit der z-Varible nicht Java Basics - Anfänger-Themen 2
M Java Programm über Batch-Datei ausführen Java Basics - Anfänger-Themen 1
E Wie Passwort-Eingabe (ohne Echo!) über Konsole ? Java Basics - Anfänger-Themen 4
C Erste Schritte Fehler beim *.class Aufruf über cmd.exe Java Basics - Anfänger-Themen 9
R Fragen über den Konstruktor Java Basics - Anfänger-Themen 0
X Minimax-Algorithmus über alle Kanten möglich? - Kanten darstellen Java Basics - Anfänger-Themen 1
P Threads Prozess kann nicht über die GUI gestartet werden Java Basics - Anfänger-Themen 8
T CMD über Java-Programm aufrufen Java Basics - Anfänger-Themen 2
X Finde die Files über FTP nicht Java Basics - Anfänger-Themen 4
J Methode über Scanner aufrufen Java Basics - Anfänger-Themen 15
P Programm kann über CMD nicht ausgeführt werden Java Basics - Anfänger-Themen 2
E Frage über Speichern und Ausgabe Java Basics - Anfänger-Themen 7
J Verschieden Fragen über Java Programmierung Java Basics - Anfänger-Themen 3
X Betriebssytem interne Consolen Commands über Java starten Java Basics - Anfänger-Themen 2
J ArrayList über verschiedene Klassen verwenden Java Basics - Anfänger-Themen 7
A .jar über Webbrowser aufrufen Java Basics - Anfänger-Themen 2
D Ausgabe über JLabel Java Basics - Anfänger-Themen 12
L Erste Schritte Arrays über eine for Schleife ansprechen. Java Basics - Anfänger-Themen 6
MiMa Datentyp Short Wert zuweisen über Methode Java Basics - Anfänger-Themen 2
K Objekt soll Anwendung über Änderungen informieren Java Basics - Anfänger-Themen 8
Detox Class Datei erzeugen nicht möglich über cmd Java Basics - Anfänger-Themen 1
F Gewichteter Mittelwert über eine Zeitperiode Java Basics - Anfänger-Themen 3
B Schleife über einen Container Java Basics - Anfänger-Themen 7
Henri Paare Frage über Java Programmierung Java Basics - Anfänger-Themen 10
T jar von stick aus über jre auf stick starten Java Basics - Anfänger-Themen 6
L Iterieren über ArrayList Java Basics - Anfänger-Themen 1
D Java doppelte Zahlen auch über 10 in einem String entfernen Java Basics - Anfänger-Themen 2
M Panel erstellen, welches ein Control erhält. Ausgabe soll über einen Stream erfolgen. Java Basics - Anfänger-Themen 0

Ähnliche Java Themen

Neue Themen


Oben