1. 程式人生 > >Java學習筆記(二十一):類型轉換和instanceof關鍵字

Java學習筆記(二十一):類型轉換和instanceof關鍵字

方法 png true feed out 實例 strong 運算符 nbsp

基本數據類型轉換

自動類型轉換:把大類型的數據賦值給大類型的變量(此時的大小指的是容量的範圍)

1 byte b = 12;  //byte是一個字節
2 int  i = b;   //int是四個字節

強制類型轉換:把大類型的數據賦值給小類型的變量

1 short s  = (short) i ;i是int類型四個字節,s是short類型二個字節

引用類型轉換:

引用類型的大和小,指的是父類和子類的關系

自動類型轉換:把子類對象賦值給父類變量(多態)

1 Animal a = new Dog();

強制類型轉換:把父類類型對象賦給子類對象

1 Animal a = new Dog();
2 Dog d = (Dog)a;

instanceof運算符:

判斷某對象是否是某一個類的實例

1 boolean b = 對象A instanceof 類B; //判斷A對象是否是B類的實例,如果是,返回true

例子1:

 1 public void feed(Animal a)
 2 {
 3     a.eat();
 4     if(a instanceof Dog) //如果動物a是Dog類對象
 5     {
 6         Dog d = (Dog) a;//將動物a強轉為Dog類
 7         d.watch();   //執行Dog類的看家方法
 8     }            
9 else if (a instanceof Cat) //如果動物a是Cat類對象 10 { 11 Cat c = (Cat)a; //將動物a強轉為Cat類 12 c.catchMouse(); //執行Cat類的抓老鼠方法 13 } 14 }

例子2:

1 Object obj = "ABC";  //多態,把String對象賦給Object類型
2 System.out.println(obj instanceof Object);  //true
3 System.out.println(obj instanceof Object);  //
true 4 System.out.println(obj.getClass()); //獲取對象的真實類型 5 System.out.println(obj.getClass() == String.class);//true 6 System.out.println(obj.getClass() == Object.class);//false

運行輸出:

:技術分享

Java學習筆記(二十一):類型轉換和instanceof關鍵字