19. Sichere Zuweisungen

19. Sichere Zuweisungen

Nicht alle Basistypen können wegen ihrer unteschiedlichen Wertebereiche sicher aufeinander zugewiesen werden. Markieren alle sicheren Zuweisungen mit einem Kreuz in der dritten Spalte. Tragen Sie für die unsicheren Zuweisungen eine Zuweisung mit einer Typkonversion(Cast) so ein, so das der Übersetzer die unsichere Zeile ohne Fehler übersetzt.

  Zuweisung Erlaubt und sicher Nicht erlaubt und unsicher
(Zuweisung mit Typkonversion)
Deklaration der Variablen. Belegung sei unbekannt und nicht die Standardinitialisierung
byte by;
short sh;
char ch;
int in;
long lo;
...
Nichts in diese Zelle eintragen Nichts in diese Zelle eintragen
Beispiel a.)
by = lo;
  by = (byte) lo;
Beispiel b.)
by = by;
 X  
1.
lo = lo;
   
2.
lo = in;
   
3.
lo = sh;
   
4.
lo = by;
   
5.
sh = lo;
   
6.
sh = in;
   
7.
sh = ch;
   
8.
sh = by;
   
9.
in = lo;
   
10.
in = in;
   
11.
in = sh;
   
12.
in = by;
   

 

Niveau 1
Schwierigkeitsgrad mittel
Zeit

6 Minuten

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

Antwort zu Frage 18: Typkonversion, Casten

  •  … im günstigsten Fall?
    • Nichts. Der zugewiesene Wert ist der korrekte Wert
  •  … im ungünstigen Fall?
    • Der zugewiesene Wert ist kleiner, da Bits die ausserhalb des Wertebereichs des kleineren Typs liegen ohne Fehlermeldung abgeschnitten werden.

 

Antwort zu Frage 19: Sichere Zuweisungen

  Zuweisung Erlaubt und sicher Nicht erlaubt und unsicher
(Zuweisung mit Typkonversion)

Deklaration der Variablen.

Belegung sei unbekannt und nicht die Standardinitialisierung

byte by;
short sh;
char ch;
int in;
long lo;
...
Nichts in diese Zelle eintragen Nichts in diese Zelle eintragen
Beispiel a.)
by = lo;
 
by = (byte) lo;
Beispiel b.)
by = by;
X  
1.
lo = lo;
X  
2.
lo = in;
X  
3.
lo = sh;
X  
4.
lo = by;
X  
5.
sh = lo;
 
sh=(short)lo;
6.
sh = in;
 
sh=(short)in;
7.
sh = ch;
 
sh=(short)ch;
8.
sh = by;
 
9.
in = lo;
 
in=(int)lo;
10.
in = in;
 
11.
in = sh;
 
12.
in = by;
X  
javafrage Tue, 10/02/2012 - 21:40