Java學習筆記(二十一):類型轉換和instanceof關鍵字
阿新 • • 發佈:2017-10-30
方法 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關鍵字