|
You last visited: Today at 08:46
Advertisement
[Java] Objekte in anderen Klassen benutzen
Discussion on [Java] Objekte in anderen Klassen benutzen within the General Coding forum part of the Coders Den category.
08/07/2013, 14:50
|
#1
|
elite*gold: 0
Join Date: Feb 2010
Posts: 64
Received Thanks: 3
|
[Java] Objekte in anderen Klassen benutzen
Meine Frage ist, ich habe die Klasse Main erstellt, in dieser habe ich eine Box erstellt :
PHP Code:
public Main() {
Box b1 = new Box();
b1.setColor("red");
}
diese will ich jetzt in der Klasse Wuerfel verändern, wie kann ich also die Box übernehmen um Sie in Wuerfel verändern zu können? Und wie kann ich einen Befehl von der Box also beispielsweise b1.setVisible außerhalb vom Konstrukor verwenden?
|
|
|
08/07/2013, 18:04
|
#2
|
elite*gold: 1
Join Date: Mar 2011
Posts: 828
Received Thanks: 1,395
|
Du solltest dein Konzept überdenken. Erstelle dir erstmal eine Klasse Würfel, in der du dann die Box erzeugst. Die Referenz auf die Box speicherst du in einem privaten Feld der Klasse und implementierst dann die entsprechenden Getter (und evtl. Setter) Methoden.
So wird beim Erstellen des Würfels automatisch die Box erstellt und du kannst dann z.b. mit
Code:
wuerfel.getBox().setVisible(true)
auch Eigenschaften der Box ändern.
|
|
|
08/07/2013, 18:28
|
#3
|
elite*gold: 0
Join Date: Feb 2010
Posts: 64
Received Thanks: 3
|
Quote:
Originally Posted by Saedelaere*
Du solltest dein Konzept überdenken. Erstelle dir erstmal eine Klasse Würfel, in der du dann die Box erzeugst. Die Referenz auf die Box speicherst du in einem privaten Feld der Klasse und implementierst dann die entsprechenden Getter (und evtl. Setter) Methoden.
So wird beim Erstellen des Würfels automatisch die Box erstellt und du kannst dann z.b. mit
Code:
wuerfel.getBox().setVisible(true)
auch Eigenschaften der Box ändern.
|
man kann die Boxen doch nur im Konstruktor erstellen, und wenn ich sie im Konstruktor erstelle, kann man dazu dann noch eine get-Methode machen?
|
|
|
08/07/2013, 19:01
|
#4
|
elite*gold: 0
Join Date: Jan 2012
Posts: 759
Received Thanks: 416
|
Du kannst in jeder Methode Objekte anlegen.
Quote:
diese will ich jetzt in der Klasse Wuerfel verändern, wie kann ich also die Box übernehmen um Sie in Wuerfel verändern zu können?
|
Über den Konstruktor oder mit Setter dem Wuerfel-Objekt übergeben.
Quote:
Und wie kann ich einen Befehl von der Box also beispielsweise b1.setVisible außerhalb vom Konstrukor verwenden?
|
In deinem Beispiel speicherst du das Box-Objekt nur als lokale Variable. Wenn du es als Attribut speicherst, kannst du auch in anderen Methoden darauf zugreifen.
|
|
|
08/07/2013, 19:26
|
#5
|
elite*gold: 1
Join Date: Mar 2011
Posts: 828
Received Thanks: 1,395
|
Code:
class Wuerfel {
private Box box = new Box();
public Wuerfel {
box.setColor("red");
}
public Box getBox() {
return this.box;
}
}
Code:
Wuerfel wuerfel = new Wuerfel();
wuerfel.getBox().setVisible(true);
|
|
|
08/07/2013, 20:49
|
#6
|
elite*gold: 0
Join Date: Apr 2006
Posts: 70
Received Thanks: 19
|
Generell. Klasse = Bauplan, Objekt = Instanz von Bauplan.
Wenn du im würfel objekt auf die funktionen vom main objekt zugreifen möchtest dann kannst du das über direkte referenz tun oder indem du die main zu einem Singelton machst (google: java singleton pattern).
direkte Referenz wäre so:
Code:
public Main() {
wuerfel w1 = new wuerfel(this);
Box b1 = new Box();
b1.setColor("red");
}
und in der würfelklasse siehts dann so aus
HTML Code:
public class wuerfel{
private Main main;
public wuerfel(Main _main){
main = _main
}
}
|
|
|
08/08/2013, 00:07
|
#7
|
elite*gold: 0
Join Date: Jan 2012
Posts: 759
Received Thanks: 416
|
Wenn er in Wuerfel nur die Box benötigt, sollte er nicht das Main-Objekt übergeben.
|
|
|
08/08/2013, 00:46
|
#8
|
elite*gold: 0
Join Date: Apr 2006
Posts: 70
Received Thanks: 19
|
Ja, du hast recht, wenn er nur die Box braucht kann er diese als direkte referenz an wuerfel übergeben anstatt main komplett.
|
|
|
08/08/2013, 17:29
|
#9
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,396
|
Das was du vorgeschlagen hast, wäre auch ein Antipattern, da damit Main zu einem Gottobjekt würde.
Zudem wäre es da noch deutlich sinnvoller, das Attribut einfach als public static zu deklarieren.
Wird Main überhaupt instanziert? Die Main Methode und alles an Attributen, worauf man von dort zugreifen will, ist doch ohnehin static.
|
|
|
|
Similar Threads
|
[Service]Waffen/Objekte aus anderen Spielen
05/18/2013 - Metin2 Private Server - 9 Replies
Hey Community,
Ich biete euch an Waffen/Objekte aus anderen Spielen zu holen und für Metin2 lauffähig zu machen.
Aus welchen Spielen?
-Aion
-RunesOfMagic
-Allods
Optional kann ich noch zurückgreifen auf:
|
(B) Tausche meinen Acc (S) Acc mit anderen klassen
03/20/2013 - World of Warcraft Trading - 2 Replies
Hallo,Liebe Epvp User.
Ich Tausche meinen Battle net Acc wo sich 2xAcc's mit WoW drauf befinden,alle beide accounts sind MOP Acc's,auf dem Account befinden sich 1xSpriest lvl 90 mit bissl elite Gear u T1 Waffen 1,9kexp RBG,83ger Heal Shammy,35ger Rouge,67ger DK UH,und vielen anderen char's
2ter. Acc Waffen Warri mit bissl Elite gear gemischt mit S12 Arena zeugs und S13!
Gametime geht noch bis zum 20.4
WoW Armory Night Elf Priest anonymous profile build | ArmoryX <<<Priester
WoW...
|
Tausche Acc (S) Acc mit anderen Klassen
03/03/2013 - World of Warcraft Trading - 0 Replies
Shadow Priest Elite t1 usw Warri :)
bei intresse in skype adden "Currywurstfaby" dann Arsenal Link usw :)
|
Bukkit Java Klassen?
06/03/2011 - Technical Support - 0 Replies
Hey,
ich will langsam mit java anfangen und dan neben bei selbst ohne Tutorial etwas zu scripten (Ein Plugin, was genau weiß ich noch nicht)
Aber nun zur farge:
Gibt es für Bukkit schon Vordefinierte Klassen oder so?
P.s. bin in java nochn Noob, habe erst 2/30 Kapiteln durch (Buch java ist eine Insel)
Mfg
.NoThx
Nachtrag:
Also ich ahbe die sachen schon Gefunden:
|
All times are GMT +1. The time now is 08:46.
|
|