Initialisierungen der einzelnen Klassen - Objektorientierung

turmalex8

Neues Mitglied
Hallo,

ich fange gerade erst an mit der Objektorientiertung und habe folgende Zeilen programmiert:
mein probleme sind, dass ich nicht weiß wohin ich Shop shop = new Shop () platzieren soll, ebenso das Phone array und bei der Ausgabe in der Klasse shop eine Methoder der Klasse phone aufzurufen, ich habs mit phone.printPhone gemacht, aber das funktioniert nicht...
Sorry für die Unübersichtlichkeit, aber ich habe mich eben erst angemeldet und weiß noch nicht wie ich das hier besser darstellen kann. Ich hoffe es kann mir jemand helfen.
Danke schonmal im Voraus.

public class SmartphoneShop
{
public class Phone
{
private String phoneName, cpu, storage, resolution, os, weight;
private int productNumber;

public void phoneName (String phoneName)
{
this.phoneName = phoneName;

} //end phoneName

public void setCpu (String cpu) //cpu setter
{
this.cpu = cpu;

} //end setName

public String getCpu () //cpu getter
{
return this.cpu;

} //end getName

//hier stehen dann die restlichen setter und getter


public void printPhone()
{
System.out.println (); //hier soll dann die Ausgabe erfolgen


} //end printPhone

} //end Phone

public class Shop
{
Shop shop = new Shop(); //initialize the shop

private Phone[] phones = new Phone[3]; //initialize Phone[] storing for example 3 phones

public void printPhones()
{

for (int i = 1; i <= phones.length; i++)
{
System.out.println ("Phone " + i + ":\n" + phone.printPhone());

}

} //end printPhones

} //end Shop

public static void printInfo ()
{
System.out.println ("\t\t\t\tSmartphone Shop");
System.out.println ("\t\t\t\t---------------");

} //end printInfo

public static void main (String[] args)
{
//START OF PROGRAM



printInfo ();

Phone[] phones = new Phone[5];

Phone apple = new Phone ("Apple iPhone 5");
apple.setCpu ("1.3 GHz dual core Apple A6");
apple.setOs ("iOS 6.0.1");
apple.setResolution ("640x1136");
apple.setStorage ("64 GB");
apple.setWeight ("112 g");

phones[0] = apple;

Phone samsung = new Phone ("Samsung Galaxy S III");
samsung.setCpu ("1.4 GHz quad core Cortex-A9");
samsung.setOs ("Android 4.0 (Ice Cream Sandwich");
samsung.setResolution ("720x1280");
samsung.setStorage ("32 GB");
samsung.setWeight ("133 g");

phones[1] = samsung;

Phone sony = new Phone ("Sony Xperia T");
sony.setCpu ("1.5 GHz dual core Qualcomm Krait MSM8260-A");
sony.setOs ("Android 4.0 (Ice Cream Sandwich");
sony.setResolution ("1280x720");
sony.setStorage ("16 GB");
sony.setWeight ("139 g");

phones[2] = sony;


shop.printPhones();



//END OF PROGRAM

} //end main

} //end SmartphoneShop
 

njans

Top Contributor
Der dicke, rote JAVA-TAGS Button, war wohl wieder mal nicht groß genug...
Warum alles in eine Klasse? Es wäre übersichtlicher gewesen Phone in eine eigene zu verschieben.

Java:
public class SmartphoneShop
{
public class Phone
{
private String phoneName, cpu, storage, resolution, os, weight;
private int productNumber;

public void phoneName (String phoneName)
{
this.phoneName = phoneName;

} //end phoneName

public void setCpu (String cpu) //cpu setter
{
this.cpu = cpu;

} //end setName

public String getCpu () //cpu getter
{
return this.cpu;

} //end getName

//hier stehen dann die restlichen setter und getter


public void printPhone()
{
System.out.println (); //hier soll dann die Ausgabe erfolgen


} //end printPhone

} //end Phone

public class Shop
{
Shop shop = new Shop(); //initialize the shop

private Phone[] phones = new Phone[3]; //initialize Phone[] storing for example 3 phones

public void printPhones()
{

for (int i = 1; i <= phones.length; i++)
{
System.out.println ("Phone " + i + ":\n" + phone.printPhone());

}

} //end printPhones

} //end Shop

public static void printInfo ()
{
System.out.println ("\t\t\t\tSmartphone Shop");
System.out.println ("\t\t\t\t---------------");

} //end printInfo

public static void main (String[] args)
{
//START OF PROGRAM



printInfo ();

Phone[] phones = new Phone[5];

Phone apple = new Phone ("Apple iPhone 5");
apple.setCpu ("1.3 GHz dual core Apple A6");
apple.setOs ("iOS 6.0.1");
apple.setResolution ("640x1136");
apple.setStorage ("64 GB");
apple.setWeight ("112 g");

phones[0] = apple;

Phone samsung = new Phone ("Samsung Galaxy S III");
samsung.setCpu ("1.4 GHz quad core Cortex-A9");
samsung.setOs ("Android 4.0 (Ice Cream Sandwich");
samsung.setResolution ("720x1280");
samsung.setStorage ("32 GB");
samsung.setWeight ("133 g");

phones[1] = samsung;

Phone sony = new Phone ("Sony Xperia T");
sony.setCpu ("1.5 GHz dual core Qualcomm Krait MSM8260-A");
sony.setOs ("Android 4.0 (Ice Cream Sandwich");
sony.setResolution ("1280x720");
sony.setStorage ("16 GB");
sony.setWeight ("139 g");

phones[2] = sony;


shop.printPhones();



//END OF PROGRAM

} //end main

} //end SmartphoneShop
 

turmalex8

Neues Mitglied
Ich habe ihn schon gesehen, wusste aber nicht genau wie der funktioniert...weil man sieht ja hier nicht, wie das dann dargestellt wird, oder?

Also, wie sieht das nun aus mit der Initialisierung in den einzelnen Klassen? Ich weiß, dass es so nicht stimmt...
 

njans

Top Contributor
Was ich direkt sehe: Phone hat keinen Consturktor, der einen String entgegen nimmt, dennoch rufst du
Java:
	Phone apple = new Phone ("Apple iPhone 5");
auf. Das kann schonmal nicht funktionieren. Einige Getter/ Setter heißen nicht so,m wie du sie aufrufst, das geht auch nicht.

Nun einmal alles in 3 Klassen:

Java:
public class Phone
	{
		private String	phoneName, cpu, storage, resolution, os, weight;
		private int		productNumber;

		/**
		 * This is the default constructor of this class.
		 */
		public Phone(String name)
		{
			phoneName = name;
		}
		
		public void setPhoneName(String phoneName)
		{
			this.phoneName = phoneName;

		} // end phoneName

		public void setCpu(String cpu) // cpu setter
		{
			this.cpu = cpu;

		} // end setName

		public String getCpu() // cpu getter
		{
			return this.cpu;

		} // end getName

		// hier stehen dann die restlichen setter und getter

		public void printPhone()
		{
			System.out.println(); // hier soll dann die Ausgabe erfolgen

		} // end printPhone

		public String getStorage()
		{
			return storage;
		}

		public void setStorage(String storage)
		{
			this.storage = storage;
		}

		public String getResolution()
		{
			return resolution;
		}

		public void setResolution(String resolution)
		{
			this.resolution = resolution;
		}

		public String getOs()
		{
			return os;
		}

		public void setOs(String os)
		{
			this.os = os;
		}

		public String getWeight()
		{
			return weight;
		}

		public void setWeight(String weight)
		{
			this.weight = weight;
		}

		public int getProductNumber()
		{
			return productNumber;
		}

		public void setProductNumber(int productNumber)
		{
			this.productNumber = productNumber;
		}

		public String getPhoneName()
		{
			return phoneName;
		}
	}

Java:
public class Shop
{
	Shop	data	= new Shop();
	private Phone[] phones = new Phone[3];
	
	// for example 3 phones
	public void printPhones()
	{
		for (int i = 1; i <= phones.length; i++)
		{
			System.out.println("Phone " + i + ":\n" + phone.printPhone());
		}
	} // end printPhones
}

Java:
public class SmartphoneShop
{
	public static void printInfo()
	{
		System.out.println("\t\t\t\tSmartphone Shop");
		System.out.println("\t\t\t\t---------------");

	} // end printInfo

	public static void main(String[] args)
	{
		// START OF PROGRAM
		printInfo();

		Phone[] phones = new Phone[5];

		Phone apple = new Phone("Apple iPhone 5");
		apple.setCpu("1.3 GHz dual core Apple A6");
		apple.setOs("iOS 6.0.1");
		apple.setResolution("640x1136");
		apple.setStorage("64 GB");
		apple.setWeight("112 g");

		phones[0] = apple;

		Phone samsung = new Phone("Samsung Galaxy S III");
		samsung.setCpu("1.4 GHz quad core Cortex-A9");
		samsung.setOs("Android 4.0 (Ice Cream Sandwich");
		samsung.setResolution("720x1280");
		samsung.setStorage("32 GB");
		samsung.setWeight("133 g");

		phones[1] = samsung;

		Phone sony = new Phone("Sony Xperia T");
		sony.setCpu("1.5 GHz dual core Qualcomm Krait MSM8260-A");
		sony.setOs("Android 4.0 (Ice Cream Sandwich");
		sony.setResolution("1280x720");
		sony.setStorage("16 GB");
		sony.setWeight("139 g");

		phones[2] = sony;

		shop.printPhones();

		// END OF PROGRAM
	} // end main

}
 
Zuletzt bearbeitet:

njans

Top Contributor
Okay, also dann wollen wir uns mal ran setzten, generell würde ich mir das so denken:

-Du erstellst einen Shop.
-Dieser Shop weiß, welche Phones er verkauft (er bekommt diese über eine Methode übergeben).
-Du kannst den Shop fragen, welche Phones er verkauft (shop.printPhones()).
-Jedes Phone kann eine textuelle Beschreibung von sich selbst zurückgeben (phone.printPhone(), achtung, das sollte ein String zurückgeben)

Mal etwas pseudocode:
PHP:
main:
  shop = new Shop();
  shop.addPhone(new Phone(...));
  ...
  shop.printPhones();
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Unterschiedliche Initialisierungen Java Basics - Anfänger-Themen 3
G Warum nur initialisierungen außerhalb von Methoden Java Basics - Anfänger-Themen 12
R [Erledigt]Fehler beim löschen von einzelnen Buchstaben aus StringBuilder Java Basics - Anfänger-Themen 1
V wie kann ich in zweidimensionaller Arraylist auf die einzelnen Elemente zugreifen ? Java Basics - Anfänger-Themen 7
A Fragmente eines Strings zu einzelnen int konvertieren Java Basics - Anfänger-Themen 3
J Methoden Einzelnen Wert aus Objekt aus einem Array auslesen und danach sortieren Java Basics - Anfänger-Themen 8
X Multi Array zu einzelnen Arrays trennen Java Basics - Anfänger-Themen 7
M Verzeichnis ausgeben mit Unterverzeichnissen und einzelnen Dateien Java Basics - Anfänger-Themen 18
K double-Wert aus einzelnen Ziffern erzeugen Java Basics - Anfänger-Themen 7
T OOP StringTokenizer, Zuweisung der einzelnen Attribute Java Basics - Anfänger-Themen 21
B die einzelnen Attribute einzeln vergleichen Java Basics - Anfänger-Themen 10
B Identifikation eines einzelnen Buttons aus mehreren Buttons per Schleife erzeugten Java Basics - Anfänger-Themen 4
T Einlesen von einzelnen Zeilen Java Basics - Anfänger-Themen 2
F Array - Vorkommen der einzelnen Werte ausgeben Java Basics - Anfänger-Themen 8
G Wie eine Int Zahl in die einzelnen Ziffern zerlegen? Java Basics - Anfänger-Themen 6
F Aktualisieren einer einzelnen Zelle in JTable Java Basics - Anfänger-Themen 2
H Parameterübergabe zwischen einzelnen Funktionen Java Basics - Anfänger-Themen 4
J Methodenaufrufe abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 17
M Abstrakte Klassen - Notation Java Basics - Anfänger-Themen 9
Detlef Bosau Nachladen von Klassen zur Laufzeit Java Basics - Anfänger-Themen 24
M Anonyme Klassen - Warum wird in der Konsole nichts ausgegeben? Java Basics - Anfänger-Themen 1
MoxMorris Einige Methoden aus verschiedenen Klassen nacheinander auszuführen läuft seltsam Java Basics - Anfänger-Themen 2
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
I 2 verschiedene Klassen mit gleichen Property vergleichen Java Basics - Anfänger-Themen 13
C Array von Klassen Java Basics - Anfänger-Themen 2
monsterherz 2 Klassen daher Probs mit dem Dateinamen Java Basics - Anfänger-Themen 9
C Kommunikation zwischen 2 Klassen Java Basics - Anfänger-Themen 9
I JPA Query für mehrere Klassen Java Basics - Anfänger-Themen 3
I @Entity Klassen, Service Beans etc. aus einem Share Projekt beziehen? Java Basics - Anfänger-Themen 26
S IntelliJ geht alle Klassen durch Java Basics - Anfänger-Themen 9
I Gleiche Klassen und Methoden in unterschiedlichen Projekten nutzen Java Basics - Anfänger-Themen 2
T variablen klassen übergreifend Java Basics - Anfänger-Themen 12
N Klassen Methoden anderer Klassen aufrufen Java Basics - Anfänger-Themen 4
D Klassen Klassen Kommunikation Java Basics - Anfänger-Themen 12
Encera Auf Objekte aus anderer Klassen zugreifen Java Basics - Anfänger-Themen 20
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
M Andere Methoden in anderen Klassen aufrufen Java Basics - Anfänger-Themen 11
L Methoden in anderen Klassen nutzen Java Basics - Anfänger-Themen 6
D Klassen und Vererbung Java Basics - Anfänger-Themen 2
L Best Practice Annotierte Klassen im Classpath herausfinden Java Basics - Anfänger-Themen 1
P Mit dem Scanner Klassen aufrufen Java Basics - Anfänger-Themen 3
O Klassen Zusammenspiel zwischen 2 Klassen Java Basics - Anfänger-Themen 1
K Zweite Ausgabe von vererbten Klassen Java Basics - Anfänger-Themen 3
M Wie können Klassen nicht-materialisierte Attribute haben, die nur über get/ set-Mehoden simuliert sind? Java Basics - Anfänger-Themen 6
Speedrunner klassen aufrufen Java Basics - Anfänger-Themen 41
M Log4J (v2) nachträglich in allen Klassen hinzufügen Java Basics - Anfänger-Themen 9
D importieren eigener Klassen Java Basics - Anfänger-Themen 12
W Wo ist der Wurm in meinem Grundverständnis von Klassen? Java Basics - Anfänger-Themen 22
S Daten/Klassen/Packages richtig updaten!? Java Basics - Anfänger-Themen 2
alice98 Erste Schritte Liste erstellen ohne vorgefertigte Klassen Java Basics - Anfänger-Themen 1
C Archiv für eigene Klassen Java Basics - Anfänger-Themen 9
S Objekte von zwei klassen in zwei verschiedene Textdateien schreiben Java Basics - Anfänger-Themen 5
elsaaaaaa Wochentag als String ausgeben mit JDK Klassen Java Basics - Anfänger-Themen 6
CptK Generics: Klassen die Interface implementieren, aber selbst nicht das Interface sind Java Basics - Anfänger-Themen 8
Z Mehtode bei Start des Programms ausführen (Klassen übergreifend) Java Basics - Anfänger-Themen 12
J Allgemeines Problem mit Klassen Java Basics - Anfänger-Themen 5
TimoN11 Java Klassen Global einbinden Java Basics - Anfänger-Themen 1
B Inventar als einzelne Klassen anlegen? Java Basics - Anfänger-Themen 12
G Java Klassen und Instanzmethoden Java Basics - Anfänger-Themen 15
C Kommunikation zwischen 2 Klassen Java Basics - Anfänger-Themen 3
T Vererbung Verschiedene Attribute für vererbte Klassen Java Basics - Anfänger-Themen 4
S Klassen instanziieren und verwenden von Getter und Setter Java Basics - Anfänger-Themen 4
B Variablen Variablen übertragen ohne Klassen Java Basics - Anfänger-Themen 5
C Fernseher-Aufgabe (Methoden, Klassen und Objekte) Java Basics - Anfänger-Themen 63
H Methoden in großen Klassen gruppieren oder auslagern? Java Basics - Anfänger-Themen 10
G Abstrakte Klassen Java Basics - Anfänger-Themen 11
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
A Generischen Klassen Java Basics - Anfänger-Themen 8
A Vererbung Klassen im Bezug auf Auto´s Java Basics - Anfänger-Themen 18
A Generische Klassen/Interface Java Basics - Anfänger-Themen 1
A Klassen Vererbung und zusätzliche Unterklassen Java Basics - Anfänger-Themen 23
J 2 klassen benutzen Java Basics - Anfänger-Themen 5
A Klassen und methoden Java Basics - Anfänger-Themen 15
A Bankweverwaltung mit Klassen und Methoden Java Basics - Anfänger-Themen 14
J Klassen Problem Java Basics - Anfänger-Themen 8
I Java Klassen "Graphics" und "MouseEvent" kombinieren Java Basics - Anfänger-Themen 7
I Klassen als Datentyp nutzen? Java Basics - Anfänger-Themen 11
M Aufsplitten von Methoden in andere Klassen Java Basics - Anfänger-Themen 2
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
C Klassen objektorientiert aufteilen Java Basics - Anfänger-Themen 6
hello_autumn Klassen Anzahl sowie die Anzahl der Junit Tests ermitteln? Java Basics - Anfänger-Themen 8
A Auf Eigenschaften von Objekten anderer Klassen zugreifen Java Basics - Anfänger-Themen 5
F Klassen und Pakete Projektübergreifend (Eclipse) Java Basics - Anfänger-Themen 6
V_Fynn03 Klassen Überweisungen tätigen und einzahlen mit 2 Klassen Java Basics - Anfänger-Themen 1
W Abarbeitungsreihenfolge Anonyme Klassen Java Basics - Anfänger-Themen 2
V_Fynn03 Bruchrechner programmieren (2 Klassen) Java Basics - Anfänger-Themen 9
D OOP- Eine Klasse in mehrere Klassen aufteilen Java Basics - Anfänger-Themen 7
J Problem mit Array: 2 Klassen Java Basics - Anfänger-Themen 2
W Frage zu anonymen Klassen Java Basics - Anfänger-Themen 4
Curtis_MC Parameter-Übergabe bei Klassen und Methoden Java Basics - Anfänger-Themen 12
E Klassen implementieren Java Basics - Anfänger-Themen 94
T Interfaces in erbenden Klassen Java Basics - Anfänger-Themen 2
C Methoden/Klassen Übergabewerte Java Basics - Anfänger-Themen 8
C Java Klassen/Methoden/Übergabeparameter Java Basics - Anfänger-Themen 4
L Wie geht man bei mehreren Action Klassen vor? Java Basics - Anfänger-Themen 0
P Datentypen, Klassen, Operatoren, Wrapperklassen Java Basics - Anfänger-Themen 2
L Wie teilt man ein Programm in vernünftige Klassen ein? Java Basics - Anfänger-Themen 10
T Klassen Denkfehler im Klassen "dynamisch" instanzieren? Java Basics - Anfänger-Themen 4
P Zugriff auf Variablen anderer Klassen in Greenfoot Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben