![]() |
[Java] variabel Klasseninstanzen erstellen
ist es möglich in java je nach einer variablen verschiedene klassen zu instanzieren? is schwer zu erklären.
sollte etwa folgendermaßen sein: String kl=new String("TestKlasse") kl neueinstanz=new kl() so ungefähr. das geht logischerweise nicht, aber gibts vielleicht nen workaround? vielleicht dass man in den string den code String kl=new String("TestKlasse tk=new TestKlasse()") schreibt und dies dann ausführen lässt? vielleicht hats ja einr kapiert. |
ja. mit vererbung.
erstelle eine neue klasse die zb String erweitert. dann kannst du eine variable anlegen und mit String oder der neuen klasse instanzieren. |
hm, weiß ned wirklich wie du das meinst.
|
neuer erklärungsversuch:
umgelegt auf zb delphi würde das etwa folgendermaßen aussehen: var test:String; begin test:='c:\test\testprogramm.exe'; exec(test); end das ganze ist nämlich für ein menü, sollte so ne kleine arcade-game-sammlung werden. dazu gibts eine klasse fürs menü, und dann gibts noch eine klasse für die einzelnen menüelemente. ein feld der element-klasse ist application, darin steht der name der klasse des arcade-games. der instanz der menüklasse fügt man dann die einzelnen elemente zu. dann sollte je nach auswahl im menü die jeweilige klasse (deren name im feld application des gewählten menüelements steht) instanziert, bzw "ausgeführt" werden. |
nun. ich weiß wirklich nicht was du meinst.
also du hast eine klasse menue. und noch eine klasse menueEintrag. in der klasse menue eine möglichkeit mehrere instanzen von menueEintrag hinzuzufügen und somit das menü aufzubauen ist das noch korrekt? so und wann brauchst du nun versch. instanzierungen? |
Ich verstehe leider auch nicht, was du meinst...
Code:
var test:String; Code:
String test = "c:\\test\\testprogramm.exe"; |
Ein Versuch noch, aber ich kann nur raten, da mir schleierhaft ist, was du wirklich willst...
Vielleicht suchst du nach einer Collection, z.b. Vector. Code:
do { |
Also so wie ich das verstanden habe will er ein Objekt einer Klasse instazieren, je nachdem welchen String er verwendet.
Und das funktioniert in Java mit der Klasse Class: Code:
String klassenname = "java.util.Date"; |
war schwer zu beschreiben.
tarjan hats richtig verstanden, danke dir und auch den anderen die versucht haben, die erklärung zu verstehen und zu antworten :) . |
Aber Achtung, wenn du das Objekt wie oben konstruiert hat es anfangs nur die Eigenschaften eines Object Objekts. Du musst später casten um die Date Funktionalität verwenden zu können.
Für dich wäre am besten ein Factory Objekt zu schreiben, welches die benötigten Objekte erzeugt. Funktioniert nach dem Factory Design Pattern: http://skripte.informatik.fh-ge.de/~...R2_Skript9.pdf http://exciton.cs.oberlin.edu/javare...oryPattern.htm http://gsraj.tripod.com/design/creat...y/factory.html |
aha, ok, danke
|
tarjan hat bereits alles gesagt, nur eines noch: der vorgang an und fuer sich nennt sich "dynamisches nachladen von klassen" - wie gesagt eine dynamische instanzierung von objekten. die besonderheit daran ist technisch gesehn, dass der java-compiler hier eine link-phase durchlaeuft (danke, fh, fuer das viele nutzlose wissen :-)
und: ich wuerd auch sehr stark dazu raten, design patterns (die factory in diesem falle) zu verwenden. |
mhm, hab zwar nüsse ahnung von patterns, und bin nicht unbedingt ein javaprofi, aber vielleicht wirds ja was mit den links von tarjan.
ein vernünftiges javabuch ist anscheinend auch nicht zu bekommen. das "handbuch zu java" (oder so ähnlich heißts, früher "goto java", kennt sicher jeder) ist so umfangreich, dass es sinnlos ist, das ganze zu lesen. dachte ja "Java 2" von "Galileo Computing" sieht nicht blöd aus, das ist keins von diesen dämlichen anfängerbüchern, aber dann ists teilweise so blöd geschrieben, andauernd mit verweisen auf andere kapitel und auch sonst einfach besch.... zu lesen. aber das ist eine andere geschichte über die es ja schon haufenweise threads im wcm-forum gibt. |
Zwei gute Bücher zu Java ist "Core Java":
http://www.amazon.de/exec/obidos/ASI...079735-2563215 http://www.amazon.de/exec/obidos/ASI...079735-2563215 Aber Achtung, diese beiden sind eher Nachschlagewerke als Lehrbücher. Dafür kannst sie aber auch noch verwenden wenn du bereits Java kannst. Zum Einstieg eigen sich sehr gut die Java Tutorials: http://developer.java.sun.com/developer/onlineTraining/ Und Design Patters (Entwurfsmuster) sind Lösungsvorschläge für bestimmte Probleme der objektorientierten Programmierung. Zu empfehlen ist hier: http://www.amazon.de/exec/obidos/ASI...079735-2563215 Man sollte mit der objektorientierten Programmierung aber schon etwas vertraut sein, bevor man sich mit Design Pattern beschäftigt. |
Alle Zeitangaben in WEZ +2. Es ist jetzt 00:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag