“你好,阿米戈!你可能已经见过了 instanceof 运算符。今天我会讲解它的使用方式和使用位置。instanceof 是一个很简单又高效的运算符。”
“听起来像不像打广告?”
“它真的是非常简单。就比如这样:对象 instanceof 类。”
它可检查对象是否是特定类的实例。但是好用不好说。请看以下示例:
代码 | 说明 |
---|---|
|
isInt 将为 true。变量 o 引用的对象是 Integer 类的实例。 |
|
isInt 将为 false。变量 o 引用的对象不是 Integer 类的实例。它是一个 String 对象。 |
|
isFIS 将为 true。变量 o 引用的对象是 FileInputStream 类的实例。 |
“对,那个真的非常简单。
“这个运算符还考虑了继承。我们看看。”
代码 | 说明 |
---|---|
|
这里有三个类声明:Animal、Cat 和 Tiger。Cat 继承 Animal。Tiger 继承 Cat。 |
|
isCat 将为 true。 isTiger 将为 true。 isAnimal 将为 true。 |
|
isCat 将为 false。 isTiger 将为 false。 isAnimal 将为 true。 |
甚至接口:
代码 | 说明 |
---|---|
|
创建两个类:Cat、TomCat 以及 Moveable 接口 |
|
isCat 将为 true。 isMoveable 将为 true。 isTom 将为 true。 |
|
isCat 将为 true。 isMoveable 将为 false。 isTom 将为 false。 |
instanceof 运算符类似于:a instanceof B。
换句话说,instanceof 运算符在如下条件下返回 true:
1) 变量 a 存储 B 类型对象的引用
2) 变量 a 存储类继承 B 的对象的引用
3) 变量 a 存储实现接口 B 的对象的引用
否则,instanceof 运算符会返回 false。
“明白了。所以为什么这个必不可少呢,里希叔叔?”
“艾丽会告诉你。这是一个非常好用的运算符。今天你就会相信这一点。”
GO TO FULL VERSION