Primitive Datentypen
-
Hallo,
ich habe da mal ein paar Fragen zu primitiven Datentypen in Java.
So wie ich das sehe behandelt der Java Compiler ALLE Ganzzahlen Literale als Int-Literale, also auch Werte wie 122, 5 etc.
Folglich verstehe ich auch noch warum folgende Zeile nicht ohne explizten Cast auf int funktioniert:short v1, v2 = 3, v3 = 5;
v1 = v2 + v3; // CompilererrorWarum geht dann jedoch folgende Zeile??
short v1;
v1 = 3 + 5; /* Das sind doch auch 2 Int Literale, aber dennoch geht es ohne explizite Cast auf int.Kann mir das bitte einer erklären?
-
[ Dieser Beitrag wurde am 09.02.2003 um 20:34 Uhr von Gregor editiert. ]
-
Incompatible type for =. Explicit cast needed to convert int to short.
Er betrachtet die 2 Variablen als Int-Variablen.
-
Original erstellt von <compi>:
Er betrachtet die 2 Variablen als Int-Variablen.Genauer wohl das Ergebnis der Addition, denn wenn man zwei shorts addiert kann ja mehr rauskommen als in einen short passt. Dasselbe Problem gibts auch bie Multiplikation etc. Wenn du dir sicher bist, dass kein Überlauf stattfinden kann, setzt den Cast rein.
-
...und wenn du nur Zahlen addierst ( v1 = 3+5; ), dann wird wohl zur Compilezeit getestet, ob es paßt oder nicht.
v1 = 20000+20000;
klappt nicht.
[ Dieser Beitrag wurde am 09.02.2003 um 21:31 Uhr von Gregor editiert. ]