Objekt-Typ-Hierarchie
In JM° wird jedes Objekt von einem Typ (in Java 'Klasse' genannt) abgeleitet und erzeugt. Ein Typ bildet sozusagen den Bauplan für ein Objekt.
Ein Objekt-Typ kann dabei von einem anderen Objekt-Typ erben und dessen Funktionalität erweitern. So ergibt sich eine klare Hierarchie.
Print "Hello world!".getTypes
Mit 'getTypes" kann eine Liste mit allen Typen abgefragt werden. In diesem Fall erhalten wir:
<Object>,<Atomic>,<Chars>,<Str>
Dass diese Zeichenkette vom Type '<Str>' ist, wissen wir bereits. Nun sehen wir uns die Hierarchie genauer an.
Unsere Zeichenkette basiert, wie alle Objekte, auf dem Typ 'Object'. Dieser Ur-Typ stellt bereits viele wichtige Funktionen bereit, wie z.B. die Funktion '.print'.
Der Typ 'Atomic' erbt von 'Object' und stellt weitere spezifischere Funktionen bereit. 'Atomic' bedeutet auch, dass es sich hier um einen atomaren Typ handelt. Atomare Typen sind die unveränderlichen Grundbausteine in JM°. Über 'Atomic' wird z.B. die Funktion '.getLength' bereitgestellt, mit der wir die Länge unserer Zeichenkette abfragen können:
Print "Hello world!".getLength
Dieser String ist also 12 Zeichen lang. Da Ganzzahlen ebenso von 'Atomic' erben, kann auch von diesen die Länge abgefragt werden:
Print 52753.getLength
Unsere Zeichenkette erbt des weiteren von 'Chars', von der ebenso der Typ "Char" (z.B.: 'a') erbt.
Ganz rechts in der Liste haben wir dann den eigentlichen Typ 'Str'.