16.11.2013 Aufrufe

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

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

1.4.1.4 Konvertieren von Objekten und Primitivtypen<br />

„Cast<strong>in</strong>g“ ist e<strong>in</strong> Mechanismus zum Konvertieren <strong>de</strong>s Werts e<strong>in</strong>es Objekts o<strong>de</strong>r e<strong>in</strong>es<br />

primitiven Typs <strong>in</strong> e<strong>in</strong>en an<strong>de</strong>ren Typ. „Cast<strong>in</strong>g“ ergibt e<strong>in</strong> neues Objekt o<strong>de</strong>r e<strong>in</strong>en<br />

neuen Wert und wirkt sich nicht auf das ursprüngliche Objekt bzw. <strong>de</strong>n<br />

ursprünglichen Wert aus.<br />

Konvertieren von Primitivtypen<br />

Ist <strong>de</strong>r angestrebte Typ „größer“ als <strong>de</strong>r zu konvertieren<strong>de</strong> Typ, ist häufig ke<strong>in</strong><br />

explizites „Cast<strong>in</strong>g“ nötig. E<strong>in</strong> „Byte“ o<strong>de</strong>r e<strong>in</strong> Zeichen kann automatisch z.B. als<br />

„<strong>in</strong>t“, e<strong>in</strong> „<strong>in</strong>t“ als „long“, e<strong>in</strong> „<strong>in</strong>t“ als „float“ behan<strong>de</strong>lt wer<strong>de</strong>n. Es gehen beim<br />

Konvertieren <strong>de</strong>s Werts ke<strong>in</strong>e Informationen verloren, weil <strong>de</strong>r größere Typ mehr<br />

Genauigkeit bietet als <strong>de</strong>r kle<strong>in</strong>ere.<br />

Ist <strong>de</strong>r angestrebte Typ „kle<strong>in</strong>er“ als <strong>de</strong>r zu konvertieren<strong>de</strong> Typ, ist „Cast<strong>in</strong>g“ nötig.<br />

Explizites Cast<strong>in</strong>g sieht so aus: (typname) wert<br />

„typname“ ist <strong>de</strong>r Name <strong>de</strong>s Typs, auf <strong>de</strong>n konvertiert wird, „wert“ ist e<strong>in</strong> Ausdruck,<br />

<strong>de</strong>r <strong>de</strong>n zu konvertieren<strong>de</strong>n Wert ergibt, z.B.: „(<strong>in</strong>t) x/y;“. Dieser Ausdruck teilt x<br />

durch y und wan<strong>de</strong>lt dann das Ergebnis <strong>in</strong> „<strong>in</strong>t“ um. Da Cast<strong>in</strong>g e<strong>in</strong>e höhere<br />

Priorität als Arithmetik hat, müssen die Klammern angegeben wer<strong>de</strong>n.<br />

Konvertieren von Objekten<br />

Mit e<strong>in</strong>er E<strong>in</strong>schränkung können auch Klassen<strong>in</strong>stanzen <strong>in</strong> Instanzen an<strong>de</strong>rer<br />

Klassen konvertiert wer<strong>de</strong>n. Die betroffenen Klassen müssen durch Vererbung<br />

mite<strong>in</strong>an<strong>de</strong>r verbun<strong>de</strong>n se<strong>in</strong>, d.h.: E<strong>in</strong> Objekt kann nur <strong>in</strong> e<strong>in</strong>e Instanz <strong>de</strong>r Sub- o<strong>de</strong>r<br />

Superklassen konvertiert wer<strong>de</strong>n, nicht aber <strong>in</strong> e<strong>in</strong>e beliebige Klasse.<br />

Durch Konvertieren e<strong>in</strong>es Objekts <strong>in</strong> e<strong>in</strong>e Instanz <strong>de</strong>r Superklasse gehen<br />

Informationen, die die Subklasse bereitgestellt hat, verloren. Spezifisches Cast<strong>in</strong>g ist<br />

erfor<strong>de</strong>rlich: (klassename) objekt.<br />

„klassename“ ist <strong>de</strong>r Name <strong>de</strong>r Klasse, <strong>in</strong> die das Objekt konvertiert wer<strong>de</strong>n soll.<br />

75

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!