Was wird dieses Programm ausgeben?
Antwort:
Neue Position:java.awt.Point[x=12,y=42]
Sichere Konvertierungen
Im Allgemeinen wird eine Konvertierung von einem Typ in einen anderen NICHT automatisch durchgeführt, wenn die Möglichkeit eines Datenverlustes besteht.
Eine Konvertierung von einem Datentyp, der N Bits verwendet, in einen Datentyp,
der weniger Bits verwendet, läuft Gefahr Daten zu verlieren und wird nicht automatisch durchgeführt.
Der Compiler entscheidet, indem er die beteiligten Datentypen untersucht,
nicht die darin aktuell enthaltenen Werte.
In den folgenden Situationen wird der Compiler automatisch, in einem Methodenaufruf, den Typ des Ausdrucks in den erforderlichen Typ konvertieren:
- Einen Ganzzahltyp in einen anderen Ganzzahltyp konvertieren, der mehr Bits verwendet.
- Einen Gleitpunkttyp in einen anderen Gleitpunkttyp konvertieren, der mehr Bits verwendet.
- Die Konvertierung eines Ganzzahltyps in einen Gleitpunkttyp, der die gleiche
Anzahl an Bits verwendet, kann zu einem Verlust an Genauigkeit führen, wird aber trotzdem automatisch durchgeführt. - Die Konvertierung eines Ganzzahltyps in einen Gleitpunkttyp mit mehr Bits
wird zu keinem Datenverlust führen und wird automatisch durchgeführt.
"Verlust an Genauigkeit" bedeutet, dass einige Ziffern mit einem niedrigen Stellenwert zu 0 werden, aber die wichtigsten Ziffern und die Größe der Zahl erhalten bleibt.
In den folgenden Situationen wird der Compiler
eine Konvertierung NICHT automatisch durchführen.
- Einen Ganzzahltyp in einen anderen Ganzzahltyp konvertieren, der weniger Bits verwendet.
- Einen Gleitpunkttyp in einen anderen Gleitpunkttyp konvertieren, der weniger Bits verwendet.
-
Einen Gleitpunkttyp in irgendeinen Integer konvertieren, da dabei sowohl
ein Verlust an Genauigkeit als auch an Größe möglich ist. - Die Konvertierung eines Boole’schen Datentyps ist generell nicht erlaubt (nicht einmal mit einer expliziten Typumwandlung).
Erinnern Sie sich an die Größen der verschiedenen primitiven Datentypen
(die primitiven Typen char und boolean werden hier nicht aufgeführt):
| Typ | Anzahl der Bits |
|---|---|
| byte | 8 |
| short | 16 |
| int | 32 |
| long | 64 |
| float | 32 |
| double | 64 |
FRAGE 7:
Klicken Sie in der entsprechenden Spalte auf die Schaltfläche für die folgenden Typumwandlungen. Es gibt nur eine korrekte Antwort pro Zeile.