JM°-Classic / Einstieg / Objects


Objects

Without noticing, we have already used a few more objects, namely "If", "Count", "While", "Repeat" and "For". These are so-called control objects, which will be described in more detail later.

In JM° there are thus 3 types of objects:

  • Atomare Objekte ( Konstant, einzigartig und in sich nicht veränderbar )
  • Normale Objekte ( Jedes Objekt ist individuell und hat eigene Zustände )
  • Control objects ( Normal objects with extended control properties )

Zudem müssen wir zwischen Objekt-Typ und Objekt-Instanz unterscheiden:

  • Ein Objekt-Typ bildet das Grundgerüst, also sozusagen den Bauplan für ein Objekt.
  • An object instance is an individual object based on an object type.

Wird in dieser Dokumentation von "Objekt" gesprochen, so ist damit eine Objekt-Instanz gemeint.

Ein Objekt-Typ beginnt immer mit einem Großbuchstaben. Beim Aufruf dieses Types wird direkt eine neue Instanz erzeugt.
Dies wollen wir uns anhand von zwei weiteren wichtigen Objekten anschauen:

Random

Mit "Random" steht uns in JM° ein Zufallsgenerator zur verfügung:

Random

Jau ... Hiermit haben wir eine Objekt-Instanz vom Typ "Random" erzeugt. Dieses Objekt steht nun allerdings sehr einsam herum und weiß nicht was es tun soll 😂 Also, geben wir ihm einen Auftrag:

Random.newInt.print

Dies erzeugt nun eine zufällige Ganzzahl und gibt diese aus. Mit Argumenten läßt sich der Bereich z.B. zwischen 1 und 10 ...

Random.newInt( 10 ).print

... or delimit 100 and 999:

Random.newInt( 100, 999 ).print

Similarly, we can create a random boolean object:

Random.newBool.print

Dies lässt sich auch mit anderen Objekten kombinieren:

Print "Soll ich das wirklich tun?"
Print Random.newBool.use( "Ja!", "Nein!" )

Input

Wer JM° mit einer Skript-Datei und nicht in der IDE verwendet, kann den Typ "Input" nutzen. Hiermit bitten wir den Benutzer um eine Eingabe:

Echo "Bitte eine Zahl eingeben: "
i = Input.readInt
Print "Die eingegebene Zahl ist: " + i

Likewise, we can enter a decimal number ...

Input.readDec.print

... or query a string:

Input.readStr.print

Important:
If the user does not enter a valid value, the function will return "Nil" as result!

Dies können wir einerseits mit ".isNil" abfragen, oder wir setzen im Falle von "Nil" einfach einen Standard-Wert:

Input.readDec.replaceNil( 1.0 ).print


- Powered by OghsWiki -

 

 

Sponsor

The development of "JayMo" is currently only possible through personal initiative.

Received:  0 €