Parameter und Datentypen


Die Datentypen boolean und int sollte dir von den letzten Kapiteln bekannt sein. Boolean repräsentiert die Werte true oder false (vornFrei(), maulLeer(), kornDa()) und int liefert ganze Zahlen (0, 1, 2…). So wie boolean und int ist auch der Hamster ein Datentyp.

Im objektorientierten Hamster-Modell kannst du auch Prozeduren und Funktionen schreiben.

ProzedurenFunktionen

Alles, was innerhalb der void main(){ } geschrieben wird, bleibt nach außen unbekannt. Das heißt, wenn du einen Hamster innerhalb der main()-Prozedur erzeugst und initialisierst, kennt nur die main() diesen Hamster und du könntest diesen Hamster nicht für eine andere Prozedur verwenden. Denn Prozeduren können nicht in Prozeduren geschrieben werden.

Wenn du eine Prozedur schreiben möchtest, müsstest du den Hamster außerhalb der main() erzeugen und innerhalb der main() initialisieren.

Auch müssen bei Prozeduren gewöhnlich alle Befehle wie vor(), nimm(), gib() und  linksUm(), Bedingungen wie vornFrei(), maulLeer() und kornDa() mit dem Hamsternamen gefolgt von einem trennenden Punktes aufgerufen werden.

Falsch:

In diesem Beispiel werden Hamster max und paddy innerhalb der main()-Prozedur erzeugt. Wie bei jedem anderen Befehlsaufruf müssen auch bei Prozeduren und Funktionen die Befehle über den Hamsternamen aufgerufen werden. Da aber beide Hamster innerhalb der main() erzeugt und initialisiert werden, sind max und paddy sozusagen unsichtbar für alle Befehlsaufrufe außerhalb der main()-Prozedur. Daher sagt der Compiler beim Ausführen des Codes, dass er „paddy“ nicht kennt.

Richtig:

In diesem Beispiel wird der Hamster paddy außerhalb der main()-Prozedur erzeugt und innerhalb der main()-Prozedur initialisiert. So kann paddy auch in einer eigenen Prozedur oder Funktion verwenden werden.

Du weißt, dass der Hamster ein Datentyp ist. Das ermöglicht dir, einen Funktionsparameter vom Datentyp Hamster zu definieren.

Beispiel:

„Hamster name“ ist ein Parameter der Funktion legen, definiert als eine Variable vom Typ Hamster.

In diesem Beispiel reicht es aus, wenn max und mini innerhalb der main()-Prozedur erzeugt und initialisiert werden. Für diese Funktion wird keine spezielle Zuweisung eines Hamsternamens für einen Befehlsaufruf benötigt. Der Hamstername wird für den Befehlsaufruf über den Parameter name der Funktion legen übergeben. In Zeile 8 und 9 wird die Funktion legen, einmal für den Hamster max und einmal für den Hamster mini, aufgerufen.