two in one!

Status
Nicht offen für weitere Antworten.

Heiland

Bekanntes Mitglied
Hallo, ich brauch mal wieder eure Hilfe:

Ich habe eine Klasse CHAR geschrieben und eigentlich muss man ja dann

CHAR meineInstanz;
meineInstanz=new CHAR(x,y,...,);

schreiben.

Kann man das ganze auch irgendwie so machen, dass man nur noch

CHAR meineInstanz(x,y,...,);

schreiben muss?

Wäre recht hilfreich, da dass dann so eine Art Scriptsprache werden soll.

Danke!
 

Heiland

Bekanntes Mitglied
ja, das geht natürlich. Ist aber zu lange! Ich wollte das so schlciht wie möglich machen. Später möchte ich ja dann diese Dinge in eine Textdatei setzen und sie dann im Hauptprogramm einlesen.
 

SebiB90

Top Contributor
es geht nicht kürzer
oder?
so vllt.
Code:
new CHAR(...);
so wird das object erzeugt aber nicht in einer var gespeichert
 

akira

Bekanntes Mitglied
Ohne new kannst Du nun mal keine Objekte erzeugen und was ist an 3 Buchstaben eigentlich zu lang?
 

Reality

Top Contributor
akira hat gesagt.:
Ohne new kannst Du nun mal keine Objekte erzeugen und was ist an 3 Buchstaben eigentlich zu lang?

Falsch!

Code:
String a = "Hallo";

Das ist aber die einzigste Ausnahme.

Liebe Grüße
Reality
 
R

Roar

Gast
na reality. das wird vom compiler eh umgewandlet. aber es is wirklich falsch. man kann ja objekte auch per reflection erzeugen lassen :roll: aber lassen wir das

@JaVa: das soll eine scriptsprache werden? ich hoffe du hast nicht daran gedacht javacode in eine textdatei zu schrieben und den dann zur laufzeit zu kompilieren :autsch:

du musst dir halt nen eigenen parser schreiben. viel spaß
 

DesertFox

Bekanntes Mitglied
*hust*, Real, und was ist mit den seit 1.5 eingeführten Auto-Boxing zwischen Wrapper-Klassen und primitiven Datentypen ;)
 

Reality

Top Contributor
DesertFox hat gesagt.:
*hust*, Real, und was ist mit den seit 1.5 eingeführten Auto-Boxing zwischen Wrapper-Klassen und primitiven Datentypen ;)
Stimmt. ;)

@JaVa:
Du könntest das theoretisch über eine Methode indirekt realisieren

Code:
public Char createChar(int a, int b){
  return new Char(a, b);
}

Liebe Grüße
Reality
 

Heiland

Bekanntes Mitglied
Gut, gut! Ja, es soll ne scriptsprache werden. Wie kann ich einen Parser schreiben? Kann mir da jemand ein Bespiel zeigen?
 
R

Roar

Gast
JaVa hat gesagt.:
Wie kann ich einen Parser schreiben? Kann mir da jemand ein Bespiel zeigen?

wie? mit viel ausdauer und zeit... das ist jedenfalls keine sache von einer stunde. nen beispiel? es gibt wohl kaum beispiele für sowas :-/ ich geb dir nur den tipp regex zu benutzen ;)
 
R

Roar

Gast
uff... regex = reguläre ausdrücke
such mal bei google nach informationen zu regex und parserbau
 

Heiland

Bekanntes Mitglied
kann ich nicht auch java selbst als scriptsprache verwenden? Mir hat mal jem. gesagt, dass das gehen würde!
 
R

Roar

Gast
gnupf. das wär wohjl overkill. erstens müssten die leute die dann deine scriptsprache benutzen wollen java können. 2. wär das sinnlos. du könntest ja praktisch alles machen. fenster öffnen, dateien runterladen udn ausführen. die VM beenden oder so.
3. wär das grottenlangsam wenn die zur laufzeit kompiliert und ausgeführt werden sollen.
 

Illuvatar

Top Contributor
Ich hab vor kurzem mal zum Spaß was gemacht, das kann Java-Befehle parsen und ruft diese über Reflection auf. Das kann aber keine erweiterte Punktnotation und kann keine Primitivtypen speichern. Sonst tut es ganz gut, ist eben naturgemäß net zu schnell. Das geht dann z.B. so:
Code:
jf = new javax.swing.JFrame("test")
jf.setVisible (true)
/ME wollte doch mal die halbfertige GUI davon fertigmachen ;)
Die Ein- und Ausgabe davon wird über ein Interface geregelt. Klasse und Interface haben zusammen ca. 725 Codezeilen, ist also bissle zu viel für hier. Außerdem ist es ziemlich zusammengehackt.
Du kannsts mal hier ausprobieren, bzw. hier mit der halbfertigen GUI, mit /help kriegst du auch eine kleine Befehlsübersicht (da steht noch bissle Quatsch drin ,net beachten). Ich kann dir auch mal den Code schicken, wenn du willst, aber pass auf, dass es dir davon net hochkommt :D
 

psychonaut

Neues Mitglied
@JaVa
ich hatte geschrieben, ich benutze java als "script"-Sprache.
Die Häkchen haben wirklich etwas zu bedeuten. Ich benutze keinen Parser, sondern Java direkt, eben weil damit direkt mehr Möglichkeiten zur Verfügung stehen, als mit jeder Scriptsprache.
Ich baute ein package, das die ganze rudimentäre Logik, das allgemeine Aussehen und Verhalten eines möglichen Spieles enthält.
Man nennt sowas die engine.
Hinzu kommt ein package für das Spiel selbst. Es besteht nur aus Regelwerken in Form von Class-Dateien und Properties, sowie der Grafik und den Sounds. Die Class-Dateien dieses packages sind quasi die "Scripte".
Damit kann man also auch Spiele in Spielen realisieren. Lade dir das package mal runter und schau es dir an. Vielleicht sogar eine frühere Version von sourceforge ...
@Roar
Das ist bestimmt nicht langsamer als Java selbst, keineswegs ein overhead oder -kill und sehr praktisch.
Ja, jemand der Regelwerke für diese engine schreiben will muss Java können. Ist dir vielleicht noch nicht aufgefallen, aber wenn man ein script schreiben will, muss man die script-Sprache beherrschen, sei es JPython, JavaScript für Java, JLua oder ...
Komischer Weise kann man mit all diesen script-Sprachen Fenster öffnen, den Prozess killen und jedweden Blödsinn anstellen, den man mit Java auch machen kann.

Allgemein bleibt aber die Frage, wozu eine Scriptsprache anwenden. Geht es um einen reduzierten Funktionsumfang?
Das kann hat meine Lösung auch, voraus gesetzt der Programmierer benutzt meinen Editor, der auf templates basiert - basieren wird - und kleinen Formular-Dialogen , sowie einem "Canvas", auf dem man die GameObjecte erzeugt, parametrisiert und anordnet. Wenn jemand nichts speziell Extraordinäres machen will, so erhält er auch keine Möglichkeit hierfür.
Anderseits kann man immer den Source direkt zu editieren. Hier stehen dann alle Möglichkeiten offen.

Greeting and best regards
Ciao*
Psychonaut
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben