`
- 浏览:
29298 次
- 性别:
- 来自:
深圳
-
instanceof是什么?
instanceof是Java的一个二元操作符,和==,>,<是同一类东东。由于它是由字母组成的,所以也是Java的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。举个例子:
String s = "I AM an Object!";
boolean isObject = s instanceof Object;
我们声明了一个String对象引用,指向一个String对象,然后用instancof来测试它所指向的对象是否是Object类的一个实例,显然,这是真的,所以返回true,也就是isObject的值为True。
instanceof有一些用处。比如我们写了一个处理账单的系统,其中有这样三个类:
public class Bill {//省略细节}
public class PhoneBill extends Bill {//省略细节}
public class GasBill extends Bill {//省略细节}
在处理程序里有一个方法,接受一个Bill类型的对象,计算金额。假设两种账单计算方法不同,而传入的Bill对象可能是两种中的任何一种,所以要用instanceof来判断:
public double calculate(Bill bill) {
if (bill instanceof PhoneBill) {
//计算电话账单
}
if (bill instanceof GasBill) {
//计算燃气账单
}
...
}
这样就可以用一个方法处理两种子类。
然而,这种做法通常被认为是没有好好利用面向对象中的多态性。其实上面的功能要求用方法重载完全可以实现,这是面向对象变成应有的做法,避免回到结构化编程模式。只要提供两个名字和返回值都相同,接受参数类型不同的方法就可以了:
public double calculate(PhoneBill bill) {
//计算电话账单
}
public double calculate(GasBill bill) {
//计算燃气账单
}
所以,使用instanceof在绝大多数情况下并不是推荐的做法,应当好好利用多态。
分享到:
- 2008-04-02 15:04
- 浏览 2194
- 评论(1)
- 论坛回复 / 浏览 (1 / 2774)
- 查看更多
Global site tag (gtag.js) - Google Analytics
相关推荐
在JavaScript中,`instanceof`操作符用于检测一个对象是否属于某个类的实例。这个操作符在日常开发中被广泛使用,但有时它可能会表现出一些意外的行为,这可能被误认为是“bug”。本文将深入探讨`instanceof`的工作...
在 JavaScript 中,typeof 和 instanceof 是两个常用的运算符,用来判断一个变量是否为空,或者是什么类型的。但是,这两个运算符之间还是有区别的。 typeof 运算符是一个一元运算符,放在一个运算数之前,运算数...
### instanceof 关键字详解 在Java编程语言中,`instanceof`是一个十分重要的关键字,用于判断一个对象是否属于特定的类或接口。本文将详细解释`instanceof`的关键特性和使用场景,并通过示例代码加深理解。 #### ...
《深入理解Java `instanceof` 关键字的实现机制》 `instanceof` 是Java语言中一个非常重要的关键字,它用于判断对象是否属于某个类或其子类(或实现了某个接口)。在Java的世界里,`instanceof` 关键字扮演着类型...
ES5的instanceof手写实现
在JavaScript中,`instanceof`和`prototype`是两个非常重要的概念,它们涉及到对象的类型检测和继承机制。本文将深入探讨这两个关键字的关系及其在实际编程中的应用。 首先,我们来理解`instanceof`操作符。`...
if ($header instanceof Div && $body instanceof Div && $footer instanceof Header1) { // 生成页面 } else { throw new InvalidArgumentException('Incorrect element types'); } } } ``` 在这个例子中,`...
无论右侧的类或接口是什么,`null instanceof ClassName`都会返回`false`。 5. **编译时错误**: - 如果`instanceof`操作符右边的类在编译时不存在或者不兼容(比如,类和接口不在同一个继承树上),则会导致编译...
15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof...
本文将深入探讨四种常用的方法来识别和判断JavaScript中的数据类型:`typeof`、`instanceof`、`constructor`以及`prototype`。 ### 1. `typeof` `typeof`操作符是最常见的类型检测方式之一,它返回一个表示未经计算...
在面向对象编程中,向下转型和`instanceof`运算符是两种重要的概念,尤其是在多态性的实现中扮演关键角色。本文将深入探讨这两个主题,并结合Delphi编程语言的背景进行阐述,尽管`instanceof`运算符在Java中更为常见...
在JavaScript编程语言中,`instanceof` 和 `typeof` 是两个非常重要的操作符,用于判断变量的类型。它们各自有着不同的用途和用法,对于理解和调试代码至关重要。 首先,我们来详细了解一下`instanceof`操作符。`...
NULL 博文链接:https://chaoyi.iteye.com/blog/2079574
instanceof 马克-to-win java视频的详细的描述介绍
比如,如果我们有一个对象,我们想验证这个对象是否是某个特定类的一个对象实例,instanceof运算符便派上了用场。如果对象确实是该类的实例,那么instanceof运算符会返回真值(true);如果不是,就返回假值(false...
`instanceof`是JavaScript中的一个操作符,用于检查一个对象是否是特定构造函数的实例,或者更具体地说,是检查该对象的原型链上是否存在指定构造函数的`prototype`。这个操作符对于理解和处理对象继承关系非常关键...
在JavaScript中,typeof和instanceof是常用的两种检测数据类型的方式,它们各自有其适用的场景和特点。 ### typeof typeof 是一个一元运算符,它用于返回变量或表达式的类型。当使用typeof运算符时,它通常会返回...