Eigene Typen

In JayMo baut alles auf Objekten bzw. Objekt-Instanzen auf, welche dann verschiedene Funktionen, Eigenschaften und Events besitzen.

Definition

Genauer gesagt gibt es zuerst Typen, welche die Grundstruktur zur Verfügung stellen, von der dann Instanzen abgeleitet werden.

Als Beispiel definieren wir den Typ "Auto":

::Auto

Damit ist bereits der Typ "Auto" erstellt, wenn auch noch ohne jegliche Funktion.

Die Definition wird wieder mit zwei Doppelpunkten eingeleitet, gefolgt von einem Großbuchstaben und weiteren Buchstaben/Zahlen/Unterstrich.

Um eine Instanz vom Typ Auto abzuleiten, muss nur der Typ-Name ausgeschrieben werden:

Auto

Und schon haben wir eine Objekt-Instanz vom Typ "Auto" erstellt. Der Typ "Auto" erbt dabei automatisch vom Typ "Objekt", weshalb uns bereits ein paar Funktionen zur Verfügung stehen:

Auto.type.print

Haupt-Block

Jeder Typ besitzt einen Haupt-Block, der beim instanziieren abgearbeitet wird. Dies ist vergleichbar mit einem Konstruktor in z.B. Java.

::Auto
	"Brumm".print

In diesem Fall wird bei jeder neuen Auto-Instanz "Brumm" ausgegeben.

In diesem Block können auch Variablen definiert werden, die dann innerhalb des gesamten Types verwendet werden können.

Funktionen

Im Haupt-Block können ebenso Funktionen definiert werden, mit denen das Objekt zum Leben erweckt wird.

Im vorherigen Kapitel wurden bereits Funktionen erstellt, welche sich dann im "Root"-Typ befanden. Für den eigenen Auto-Typ funktioniert dies genau so:

::Auto
	"Brumm".print

	::fahren
		"Bwwww".print

	::hupen
		"Möööp".print

	::bremsen
		"Quiiitsch".print

Nun lässt sich von diesem Typ ein Auto ableiten, mit dem interagiert werden kann:

a = Auto
a.fahren
a.hupen
a.bremsen

Hier wird ein "Auto" erstellt und der Variable "a" zugewiesen. Anschließend werden die einzelnen Funktionen aufgerufen. Der Aufruf von ...

Auto.fahren
Auto.hupen
Auto.bremsen

... würde in jeder Zeile eine neue Auto-Instanz erzeugen. Somit existiert dann ein Auto zum Fahren, ein Auto zum Hupen und ein Auto zum Bremsen. 😂
Ebenso wird jedes Mal "Brumm" ausgegeben.

- Powered by OghsWiki -

 

 

Unterstützen

Die Entwicklung von "JayMo" wird derzeit nur durch Eigeninitiative ermöglicht.

Erhalten:  0 €