java資料型別的轉換
阿新 • • 發佈:2018-12-10
自動型別轉換
條件:1,轉換前後的資料型別相容;
2,轉換後的資料型別的表示範圍要比轉換前的大;
自動轉換按從低到高的順序轉換。不同型別資料間的優先關係如下: 低--------------------------------------------->高 byte,short,char-> int -> long -> float -> double 運算中,不同型別的資料先轉化為同一型別,然後進行運算,轉換規則如下:
// 自動型別轉換 short s=1; int i; // 自動型別轉換 short型別轉成int型別 i=s;
short型別比int型別小,可以自動轉換時安全的。
強制型別轉換
資料型別不相容,一種不安全的轉換;
強制轉換的格式是在需要轉型的資料前加上“( )”,然後在括號內加入需要轉化的資料型別。有的資料經過轉型運算後,精度會丟失,而有的會更加精確,下面的例子可以說明這個問題。
double d=1.333;
float f;
// 把double型別的資料強制轉換成float型別
f=(float)d;
int x; double y; x = (int)34.56 + (int)11.2; // 丟失精度 y = (double)x + (double)10 + 1; // 提高精度 System.out.println("x=" + x); System.out.println("y=" + y); x=45 y=56.0
引用型別的強制型別轉換
public class C12 { private Object object; public C12(Object object) { super(); this.object = object; } public Object getObject() { return object; } public void setObject(Object object) { this.object = object; } public void print(){ System.out.println("object的型別是:"+object.getClass().getName()); } } // begin test c12 C12 c12=new C12(1); // 向上轉型 c12.print(); int i2=(Integer) c12.getObject(); // 向下轉型 System.out.println("i2="+i2);