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在绝大多数情况下并不是推荐的做法,应当好好利用多态。
- 浏览: 44317 次
- 性别:
- 来自: 上海
相关推荐
在Java编程语言中,`instanceof`关键字是一个非常重要的工具,它用于判断对象是否属于某个类、接口或者其子类。这个关键字可以帮助开发者在运行时检查一个对象的类型,从而进行更加灵活的代码控制。本篇文章将深入...
Java 中 instanceof 与 Class 的等价性代码示例 Java 中的 `instanceof` 运算符是一个二元操作符,用于检查对象是否属于某个特定类或其子类。它返回一个布尔值,指示对象是否是该类或其子类的一个实例。在 Java 中...
java instanceof运算符
Java 中的 instanceof 关键字理解 Java 中的 instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。它通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。 instanceof ...
`instanceof` 是Java语言中一个非常重要的关键字,它用于判断对象是否属于某个类或其子类(或实现了某个接口)。在Java的世界里,`instanceof` 关键字扮演着类型检查的角色,帮助开发者在运行时确定对象的实际类型。...
java学习-java中的继承extents和instanceof关键字
Java中的instanceof运算符是用来在运行时判断对象是否是指定类及其父类的一个实例。下面我们将详细介绍Java关键字instanceof的用法和实现策略。 instanceof运算符的基本用法 instanceof运算符是一个双目运算符,...
instanceof 马克-to-win java视频的详细的描述介绍
Java中的`instanceof`关键字是程序在运行时检查对象类型的强大工具。它是Java语言中用于类型判断的关键字,能够帮助开发者确定对象是否属于特定类或其子类(或实现的接口)的实例。`instanceof`操作符返回的是一个...
在Java编程语言中,`instanceof` 和 `getClass()` 是两个重要的操作符和方法,它们在类型检查和对象实例识别方面发挥着关键作用。本文将深入探讨这两个概念的区别及其应用场景。 `instanceof` 关键字主要用于判断一...
Java SE编程入门教程 java instanceof(共3页).pptx Java SE编程入门教程 java IO(共28页).pptx Java SE编程入门教程 java Math(共11页).pptx Java SE编程入门教程 java object(共9页).pptx Java SE编程入门...
`instanceof`是Java语言中的一个关键字,用于检查对象的类型。它可以帮助程序员确定对象是否属于特定类或者其子类(或实现的接口)的实例。`instanceof`操作符的语法结构是: ```java object instanceof ClassName ...
在Java编程语言中,方法的重写和多态是面向对象设计的重要概念,它们使得代码更加灵活和可扩展。下面将详细阐述这两个概念及其应用场景。 首先,方法的重写(Override)是指在一个子类中定义与父类相同名称和参数...
在Java编程语言中,转型运算符是至关重要的概念,它涉及到不同数据类型的转换。Java提供了两种主要的转型方式:自动类型转换(也称为隐式转换)和强制类型转换(也称为显式转换)。理解并熟练掌握这些转换对于编写...
在Java编程语言中,`instanceof`关键字是一个非常重要的概念,它主要用于判断对象是否属于某个类、接口或者其子类。这个关键字可以帮助开发者确定对象的实际类型,从而在运行时进行类型检查,执行条件操作或者执行多...
在Java编程语言中,`instanceof` 和 `Class.isInstance()` 都是用来判断对象是否属于特定类型的工具,但它们之间存在一些微妙的区别。下面将详细解释这两种操作符的用法和差异。 首先,`instanceof` 关键字是Java...
在Java编程语言中,`instanceof`操作符是一个至关重要的工具,它允许程序员在运行时检查对象的类型。`instanceof`主要用于确定一个对象是否属于某个特定类、接口或者其子类(或实现)。理解`instanceof`的使用和原理...
在Java编程语言中,图像处理是一项常见的任务,特别是在开发图形用户界面(GUI)或进行多媒体应用时。`Image`和`BufferedImage`是Java AWT(Abstract Window Toolkit)和Swing库中的两个重要类,它们分别用于处理...
本文将深入探讨这两个主题,并结合Delphi编程语言的背景进行阐述,尽管`instanceof`运算符在Java中更为常见,但其原理在大多数面向对象的语言中都是相似的。 首先,我们来看向下转型。在面向对象编程中,向上转型是...