Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
3.1 int, boolean und Programmstrukturen<br />
3.1.1.4 Arithmetische Operatoren und Zuweisung<br />
Dringen wir nun tiefer in die Klasse Number ein: In ihrem Konstruktor Number() wird<br />
eine Instanz der Klasse Random generiert.<br />
Die Methode<br />
public void nextValue() {<br />
value = Math.abs(rndm.nextInt())%99+1;<br />
}<br />
weist der Instanzvariablen value eine positive ganze Zahl zwischen 1 und 99 zu.<br />
Im Ausdruck<br />
Math.abs(rndm.nextInt())%99+1<br />
findet man einerseits einen Methodenaufruf (Math.abs(rnd.nextInt()) vor,<br />
welcher als Parameter erneut einen Methodenaufruf (rndm.nextInt()) beinhaltet, und<br />
andererseits die arithmetischen Operatoren % und +. Wie in der Mathematik, sind auch<br />
arithmetische Operatoren mit Prioritäten verknüpft, es ist geregelt, welche Operation vor<br />
einer anderen ausgeführt werden muss. So hat beispielsweise der sogenannte Modulo-<br />
Operator (%) eine höhere Priorität als die Addition (+). Wenn wir die Prioritäten durch<br />
Setzten von Klammern verdeutlichen, erhalten wir folgenden Ausdruck:<br />
((Math.abs(rndm.nextInt())%99)+1)<br />
Als erstes wird der Methodenaufruf Math.abs(rndm.nextInt()) ausgeführt. Da<br />
dieser als Parameter wiederum einen Methodenaufruf beinhaltet, wird schlussendlich der<br />
Methodenaufruf rndm.nextInt() als allererste Aktion gestartet. Dem Objekt rndm<br />
wird die Botschaft nextInt() gesendet, bei welcher es sich um eine in der Klasse<br />
Random deklarierte Methode handelt, welche zufällig eine ganze Zahl vom Typ int<br />
generiert. Diese int-Zahl wird nun als Parameter der Methode abs() übergeben. Die in<br />
der Klasse Math aufgeführte Methode, liefert den Absolutbetrag des ihr als Parameter<br />
übergebenen int-Wertes zurück. Die beiden Methodenaufrufe liefern also schlussendlich<br />
eine zufällig generierte, positive, ganze Zahl.<br />
Der Modulo-Operator liefert den Rest, der bei einer Division zweier ganzzahligen Zahlen<br />
anfällt.<br />
Math.abs(rndm.nextInt())%99<br />
Wenn wir also beispielsweise 103 % 99 rechnen, erhalten wir 4, da 103 geteilt durch 99<br />
eins Rest vier ergibt. Die Resultate von einer positiven, ganzen Zahl % 99 bewegen sich<br />
also in den Schranken von 0 bis 98.<br />
64