Ein eigener Typ
Ein Typ bietet die Grundstruktur (sozusagen einen Bauplan), von der aus beliebig viele Objekt-Instanzen erzeugt werden können.
Dafür kann ein Typ verschiedene Funktionen, Events und Eigenschaften besitzen.
Definition
Genau wie bei Funktionen wird ein Typ mit zwei Doppelpunkten definiert. Dieses mal allerdings gefolgt von einem Großbuchstaben und dem Typ-Namen.
Hier als Beispiel wird der Typ "Cat" (Katze) definiert:
::Cat
Damit ist bereits der Typ "Cat" erstellt, wenn auch noch ohne jegliche Funktion.
Mit dem Typ-Namen kann nun direkt eine neue Instanz erstellt und von diesem Typ abgeleitet werden:
Cat
Da der Typ "Cat" automatisch vom Typ "Object" erbt, stehen bereits ein paar Funktionen zur Verfügung:
Print Cat.types
Haupt-Block
Jeder Typ besitzt einen Haupt-Block, der beim instanziieren abgearbeitet wird. Dies ist vergleichbar mit einem Konstruktor in z.B. Java.
::Cat
Print "Miau"
Nun wird bei jeder neuen Cat-Instanz "Miau" ausgegeben.
Cat
Cat
Cat
In diesem Block lassen sich auch Variablen und Konstanten definieren, die innerhalb des gesamten Typs verwendet werden können.
Parameter
Identisch zu Funktionen lassen sich auch für einen Typ Parameter definieren:
::Cat( Str name )
Print "Miau"
Print "My name is: " + name
Cat( "Nelly" )