16.11.2013 Aufrufe

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Programmieren</strong> <strong>in</strong> <strong>Java</strong><br />

Bewertungsreihenfolge<br />

Die Vorrangregeln helfen bei <strong>de</strong>r Bewertung, welche Operatoren <strong>in</strong> e<strong>in</strong>em Ausdruck<br />

zuerst benutzt wer<strong>de</strong>n und welche Operan<strong>de</strong>n zu welchen Operatoren gehören. Die<br />

Regeln für die Bewertungsreihenfolge helfen festzulegen, wann welche Operan<strong>de</strong>n<br />

bewertet wer<strong>de</strong>n. Die drei folgen<strong>de</strong>n Regeln bestimmen, wie e<strong>in</strong> Ausdruck bewertet<br />

wird:<br />

- Bei allen b<strong>in</strong>ären Operatoren wird <strong>de</strong>r l<strong>in</strong>ke Operand vor <strong>de</strong>m rechten bewertet.<br />

- Zuerst wer<strong>de</strong>n die Operan<strong>de</strong>n, danach die Operatoren bewertet.<br />

- Falls mehrere Parameter, die durch Kommata vone<strong>in</strong>an<strong>de</strong>r getrennt s<strong>in</strong>d, durch e<strong>in</strong>en Metho<strong>de</strong>naufruf zur<br />

Verfügung gestellt wer<strong>de</strong>n, wer<strong>de</strong>n diese Parameter von l<strong>in</strong>ks nach rechts bewertet.<br />

2.3.3 Typkonvertierungen<br />

<strong>Java</strong> ist e<strong>in</strong>e typisierte Sprache. Es f<strong>in</strong><strong>de</strong>n gründliche Typüberprüfungen statt, und es<br />

gelten strikte Beschränkungen für die Konvertierung von Werten e<strong>in</strong>es Typs zu<br />

e<strong>in</strong>em an<strong>de</strong>ren. Unter „Cast<strong>in</strong>g“ versteht man die Umwandlung von e<strong>in</strong>em Datentyp<br />

<strong>in</strong> e<strong>in</strong>en an<strong>de</strong>ren.<br />

<strong>Java</strong> unterstützt explizite Konvertierungen und „ad hoc“-Konvertierungen.<br />

Ad-hoc-Konvertierungen. Hier gibt es folgen<strong>de</strong> Regeln für numerische Datentypen:<br />

- Bei Operationen mit ausschl. ganzzahligen Operan<strong>de</strong>n wird, falls e<strong>in</strong>er <strong>de</strong>r bei<strong>de</strong>n Operan<strong>de</strong>n <strong>de</strong>n<br />

Datentyp long hat, <strong>de</strong>r an<strong>de</strong>re ebenfalls zu long konvertiert; ansonsten wer<strong>de</strong>n bei<strong>de</strong> Operan<strong>de</strong>n<br />

zu <strong>in</strong>t konvertiert. Das Ergebnis ist dann ebenfalls vom Typ <strong>in</strong>t. Ist allerd<strong>in</strong>gs <strong>de</strong>r ausgegebene<br />

Wert zu groß, um im Wertebereich von <strong>in</strong>t dargestellt zu wer<strong>de</strong>n, wird <strong>de</strong>r Typ long verwen<strong>de</strong>t.<br />

- Bei Operationen mit wenigstens e<strong>in</strong>em Gleitpunkt-Operan<strong>de</strong>n wird, wenn e<strong>in</strong>er <strong>de</strong>r Operan<strong>de</strong>n <strong>de</strong>n<br />

Datentyp double hat, <strong>de</strong>r an<strong>de</strong>re ebenfalls zu double konvertiert. Das Ergebnis ist dann ebenfalls<br />

vom Datentyp double, an<strong>de</strong>renfalls wer<strong>de</strong>n bei<strong>de</strong> Operan<strong>de</strong>n zum Datentyp float konvertiert.<br />

Das Ergebnis ist ebenfalls vom Typ float.<br />

Explizite Konvertierungen. Sie s<strong>in</strong>d immer nötig, wenn e<strong>in</strong>e Umwandlung <strong>in</strong> e<strong>in</strong>en<br />

an<strong>de</strong>ren Datentyp gewünscht wird und diese nicht „ad hoc“ e<strong>in</strong>tritt. „Cast<strong>in</strong>g“ muß<br />

dann angewen<strong>de</strong>t wer<strong>de</strong>n. Der zugehörige (Festlegungs-)Operator besteht aus<br />

e<strong>in</strong>em Typnamen <strong>in</strong> run<strong>de</strong>n Klammern. Er ist e<strong>in</strong> e<strong>in</strong>stelliger Operator mit hoher<br />

Priorität und steht vor se<strong>in</strong>en Operan<strong>de</strong>n. Er hat immer die folgen<strong>de</strong> Form:<br />

„(Datentyp) Wert“. Der (Festlegungs-)Operator bestimmt <strong>de</strong>n Wert se<strong>in</strong>es<br />

Operan<strong>de</strong>n, <strong>de</strong>r auf <strong>de</strong>n <strong>in</strong> Klammern bezeichneten Typ festgelegt wird. Es gibt<br />

folgen<strong>de</strong> Cast<strong>in</strong>g-Operatoren:<br />

Operator Beispiel Erläuterung<br />

(byte)<br />

(byte) (x/y) Wan<strong>de</strong>lt das Errgebnis von x/y <strong>in</strong> e<strong>in</strong>en Wert vom Datentyp byte<br />

um<br />

(short) (short) x Wan<strong>de</strong>lt x <strong>in</strong> e<strong>in</strong>en Wert vom Datentyp short um<br />

(<strong>in</strong>t) (<strong>in</strong>t) (x/y) Wan<strong>de</strong>lt das Ergebnis von x/y <strong>in</strong> e<strong>in</strong>en Wert vom Datentyp <strong>in</strong>t<br />

(long) (long) x Wan<strong>de</strong>lt x <strong>in</strong> e<strong>in</strong>en Wert vom Datentyp long um<br />

(float) (float) x Wan<strong>de</strong>lt x <strong>in</strong> e<strong>in</strong>en Wert vom Datentyp float um<br />

(double) (double) x Wan<strong>de</strong>lt x <strong>in</strong> e<strong>in</strong>en Wert vom Datentyp double um<br />

(char) (char) x Wan<strong>de</strong>lt x <strong>in</strong> e<strong>in</strong>en Wert vom Datentyp char um<br />

(boolean) (boolean) 0 Wan<strong>de</strong>lt 0 <strong>in</strong> e<strong>in</strong>en booleschen Datentyp um<br />

Abb.: Cast<strong>in</strong>g-Operatoren<br />

172

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!