instanceof,大神給我們的禮物嗎?
阿新 • • 發佈:2018-11-10
1、instanceof,沒錯這個非規範的單詞,就是java中的關鍵字,大大神送給咱們的禮物之一。
2、既然是禮物,那一定很受用了。instanceof的作用就是判斷 當前的一個例項物件是否為某一個class(其擴充套件類也可)的例項物件,如果是,返回true,反之,返回false。
3、看見第二條,有沒有很亂?沒事,直接上例子。
first.先寫個基類,Animal,醉了,動物嘛,總得吃吧
public abstract class Animal{ void eat(); }
second.再寫個擴充套件類,就用Dog吧,哈哈,醉了
public class Dog extends Animal {
public void eat() {
System.out.println("怎麼吃,隨狗吧");
}
}
third.再整個貓吧,我也是醉了
public class Cat extends Animal{
public void eat(){
System.out.println("貓吃");
}
}
好吧,貓和狗都有了
public class Home{ public static void main(String args[]) { Animal oneAni = new Dog(); Animal twoAni = new Cat(); boolean tempOne = oneAni instanceof Cat; boolean tempTwo = twoAni instanceof Dog; } }
4、總結
instanceof - >用於判斷當前物件是否為某個class的物件,或者某個class的子類的物件
返回值是boolean型別,如果是則為true,如果不是則為false
5、有時候一個List裡面,比如就是Animal的List裡面,即有Dog、又有Cat,想對Dog和Cat判斷出來分別做不同的事情,那就用instanceof再好不過了
虛擬碼
for(item 遍歷Animal List) {
if(item instanceof Dog ) {
乾點啥好呢,吃狗屎吧
}
if (item instanceof Cat) {
沒得幹,去舔舔自己的趾頭吧
}
}