1. 程式人生 > >instanceof,大神給我們的禮物嗎?

instanceof,大神給我們的禮物嗎?

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) {
        沒得幹,去舔舔自己的趾頭吧
   }


}