CodeGym /課程 /Java 核心 /instanceof 運算符

instanceof 運算符

Java 核心
等級 4, 課堂 1
開放

“你好,阿米戈!你已經接觸過instanceof操作符了。今天我將告訴你它的使用方法和使用位置。instanceof是一個非常簡單高效的操作符。”

“這聽起來像廣告!”

“真的很簡單。它是這樣使用的:«object» instanceof «class»。”

它檢查對像是否是特定類的實例。這比解釋它更容易。看這個例子:

代碼 描述
Object o = new Integer(3);
boolean isInt = o instanceof Integer;
isInt將為真。變量 o 引用的對像是Integer類的一個實例。
Object o = "Mama";
boolean isInt = o instanceof Integer;
isInt將為假。變量 o 引用的對像不是Integer類的實例。它是一個字符串對象。
InputStream is = new FileInputStream("");
boolean isFIS = is instanceof FileInputStream;
isFIS將為真。變量 o 引用的對像是FileInputStream類的一個實例。

“是的,那很簡單。”

“這個算子也算繼承了,你看看。”

代碼 描述
class Animal
{
}
class Cat extends Animal
{
}
class Tiger extends Cat
{
}
這裡我們有三個類聲明:Animal、Cat 和 Tiger。貓繼承動物。Tiger 繼承了 Cat。
Object o = new Tiger();
boolean isCat = o instanceof Cat;
boolean isTiger = o instanceof Tiger;
boolean isAnimal = o instanceof Animal;
isCat 將為 true。
isTiger 將為 真。
isAnimal 將為 true。
Object o = new Animal();
boolean isCat = o instanceof Cat;
boolean isTiger = o instanceof Tiger;
boolean isAnimal = o instanceof Animal;
isCat 將為false。
isTiger 將為 false。
isAnimal 將為 true。

甚至接口:

代碼 描述
interface Moveable
{
}
class Cat
{
}
class TomCat extends Cat implements Moveable
{
}
創建兩個類:Cat、TomCat 和 Moveable 接口
Cat o = new TomCat();
boolean isCat = o instanceof Cat;
boolean isMoveable = o instanceof Moveable;
boolean isTom = o instanceof TomCat;
isCat 將為 true。
isMoveable 將為 true。
isTom 將為 true。
Cat o = new Cat();
boolean isCat = o instanceof Cat;
boolean isMoveable = o instanceof Moveable;
boolean isTom = o instanceof TomCat;
isCat 將為 true。
isMoveable 將為 false。
isTom 將為 false。

instanceof 運算符如下所示:a instanceof B。

換句話說,如果出現以下情況,instanceof運算符將返回true:

1)變量a存儲了對類型B對象的引用

2) 變量a存儲了一個對象的引用,該對象的類繼承了 B

3) 變量a存儲對實現接口B的對象的引用 

否則,instanceof運算符將返回false。

“明白了。那麼為什麼這是必要的,Rishi 叔叔?”

“Ellie 今天要告訴你這件事。這是一個非常好的接線員。你今天會相信這一點。”

4
任務
Java 核心, 等級 4, 課堂 1
上鎖
Code entry
Sometimes you don't need to think, you just need to hammer it out! As paradoxical as it may seem, sometimes your fingers will "remember" better than your conscious mind. That's why while training at the secret CodeGym center you will sometimes encounter tasks that require you to enter code. By entering code, you get used to the syntax and assimilate some material. What's more, you combat laziness.
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION