1. 程式人生 > >java資料型別的轉換

java資料型別的轉換

自動型別轉換

條件: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);