# Java Variable nach String benennen



## Dorfi (8. Mai 2012)

Hallo,
ich möchte einen Quelltext schreiben, in dem ich variablen und Klassen-Instanzen nach einer Eingabe des Benutzers benennen kann. Also, wenn der Nutzer in ein Textfeld "Hallo" eingibt, soll die Variable "Hallo" heißen. Ich weis nicht wie ich dies umsetzten soll. Ich hoff, dass mir hier jemand helfen kann.
Danke im Voraus!


----------



## Fab1 (8. Mai 2012)

Grundsätzlich weiß ich nicht wie das geht, aber kannst du mir bitte erklären, für was du das brauchst?


----------



## Marco13 (8. Mai 2012)

Das geht nicht. Siehe auch http://www.java-forum.org/top-fragen/62032-fragen-variablennamen.html


----------



## Dorfi (8. Mai 2012)

Also zur Erklärung: Ich brauche das für ein Java-Spiel, dass man über Lan spielen kann. Ich möchte als Server den Glassfish-Server benutzen. Durch diese Benennung möchte ich erreichen, dass ich die Nutzer am Instanznamen unterscheiden kann. vielleicht stelle ich mir das auch viel zu kompliziert vor. Könnt ihr mir da vielleicht bisschen helfen? Und ist so ein Java-Lan spiel allgemein kompliziert zu schreibenm, oder kann man das "Fortgeschrittener Laie " auch schaffen?


----------



## Fu3L (8. Mai 2012)

Du solltest ja sowieso eine Klasse Spieler haben und für jeden Spieler, der sich einloggt, wird eine Instanz dieser Klasse geschaffen. Diese Klasse könnte eine Instanzvariable vom Typ String enthalten, die den Spielernamen speichert. Das wäre schon einmal sinnvoll.

Außerdem könntest du die Spielerinstanzen in einer Map<String, Spieler> speichern, wobei der String immer der Name des Spielers ist.


----------



## Dorfi (8. Mai 2012)

Ich habe momentan eine Klasse "Car", die enthält, wie das Auto aussehen soll und was es für Eigenschaften hat, also Lebensenergie usw.
Ich würde diese Klasse dann an Stelle der Spieler Klasse verwenden.
Aber ist ein solches Spiel für einen, wie gesagt, "Fortgeschrittenen Laien" umsetzbar? Und habt ihr Tips, welche Bereiche ich mir der Api genau anschauen sollte?


----------



## Fab1 (8. Mai 2012)

Was möchtest du denn genau für ein Spiel schreiben? Etwas mehr Infos dazu wären gut.

Grundsätzlich ist alles für einen Laien umsetzbar, wenn man sich anstrengt und nicht nach 5 Stunden aufgibt.


----------



## Dorfi (8. Mai 2012)

Also ich (wir) hätten vorerst einmal geplant einfach ein "Spiel" zu schreiben, bei dem man mit Autos rum fahren kann, aber über LAN. Und dieses dann weiter zu entwickeln. Also Waffen einzubauen usw. Jedoch für den Anfang ganz einfach erst einmal 2 oder mehrere Autos in einem Spielfeld. 
Und nach 5 Stunden aufgeben ist eigentlich nicht meine Art. Ich bin schon sehr interessiert in Informatik und suche auch wenn es sein muss mal 1 oder 2 Stunden im Internet nach einem Problem und wenn ich nichts konkretes finde, frag ich halt in einem Forum nach.


----------



## Atze (8. Mai 2012)

naja, da stehst du ja erstmal im groben vor 2 großen teilprojekten.

1. musst du das spiel an sich entwickeln
2. die synchronisation über das netzwerk

für einen "laien" ist das schon ein mutiges projekt, aber sicher machbar. jedenfalls solltest du dir erstmal genau überlegen, was du wo (client / server) benötigst und wie du es umsetzen willst. einfach so drauf los programmieren wird da nicht hinhauen.


----------



## schalentier (8. Mai 2012)

Hast du schon Erfahrung mit Java, oder warum willst du das mit Java machen?

Eine alternative Moeglichkeit waere, das mit JavaScript zu machen und den <canvas> zu verwenden. Eine kleine Canvas-Einführung ? Peter Kröner ? Webtechnologie

Da duerften auf google auch einige Tutorials zu finden sein.

Wenn das alles im "Singleplayer" laeuft, kannst du z.B. mit node.js einen Server bauen und per WebSockets die Kommunikation loesen. 

Du solltest dich aber auf weit mehr als 5h vorbereiten. ;-)


----------



## Dorfi (8. Mai 2012)

Ja wie gesagt ich will einen Glassfish-Server verwenden und keine eigene Clientanwendung. Ich dachte mir, dass dies einfach ist, da ich ja dann nicht immer von Client zu Server zu Client kommunizieren muss, sondern die Koordinaten intern gespeichert und berechnet werden und dann nur die Position immer über eine Java-Anwendung, die in eine HTML Seite eingebettet ist, ausgegeben wird. 
Und ich würde mich nicht direkt als Laien bezeichnen. Ich weis die Grundregeln des Programmierens, ich kann mit der API relativ umgehen und habe schon mit kleineren Programmen Erfahrung.
Ja ich habe schon Erfahrung mit Java. Hab Informatik als Unterrichtsfach und finde, dass es eine sehr gute Programmiersprache mit vielen Möglichkeiten ist und will sie daher auch lernen.


----------



## Atze (8. Mai 2012)

na das hört sich ja doch schon nach nem konzept an  obwohl einfach sicher auch das falsche wort ist 

aber um das "von client zu server zu client" wirst du wohl nicht rumkommen, es muss doch kommuniziert werden, bzw die spieler bewegen sich doch durch eingaben. der server soll ja nicht nur "irgendwas" berechnen und die clients zeigen das dann an. dann hättest du n video-stream 

und das wort "laie" hast du zuerst ausgepackt


----------



## schalentier (8. Mai 2012)

Wenn du einen Glassfish verwenden willst, brauchst du trotzdem einen Client. Das ist entweder 
- HTML, was eine Webapplication im Glassfish zu jedem Client schickt
- ein Stueck JavaScript Code in diesem HTML, was den HTML5-Canvas verwendet
- oder eine andere Clientanwendung, die z.B. per REST mit dem Server im Glassfish redet (bisschen ungewoehnlich), fuer den Client koenntest du aber wieder Java nutzen und Qualix Tutorial durcharbeiten

Von Applets (in HTML Seiten eingebetteter Java Code) wuerd ich abraten.


----------



## Dorfi (8. Mai 2012)

Ja aber ich komme durch dieses Serverkonzept zumindest um das Senden von einigen Variablen rum. 
Ich dachte mir die Kommunikation mit Java EE zu lösen und wie gesagt das Spielfeld auf einer HTML Seite anzeigen zu lassen. Gibt es schwerwiegende Sachen, die gegen diese Idee sprechen?
Also ich hab schon einen kleinen Teil des Spiels fertig. Ich muss dort nur noch ein paar Probleme lösen, aber ich denke das schaffe ich. Ich weis bloß überhaupt nicht, wie ich die Kommunikation und den Datenabgleich hinbekommen soll.


----------

