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在绝大多数情况下并不是推荐的做法,应当好好利用多态。参考资料:http://edu.yesky.com/edupxpt/253/2212253.shtml
分享到:
相关推荐
在JavaScript(JS)编程语言中,确定变量或对象的类型是一项基本且重要的任务。这不仅有助于理解代码的行为,还能在调试、数据验证以及...理解并灵活运用这些方法,可以帮助开发者编写更加健壮和高效的JavaScript代码。
在JavaScript编程语言中,`instanceof` 和 `typeof` 是两个...了解并熟练运用这两个操作符,可以提高我们的编程效率,减少由于类型错误导致的问题。在实际开发中,结合使用这两者,能够更好地进行类型检测和错误预防。
理解`instanceof`的关键点在于如何恰当地运用它来优化代码结构,提高程序的灵活性和可扩展性。通过视频课程"第05章 面向对象(下) 09 Instanceof关键字.mp4",你可以深入学习这一主题,并掌握`instanceof`在实际...
在前端开发领域,面试题是检验开发者基础技能和实际应用能力的重要方式。"baseJS-instanceof.zip"这个压缩包文件显然聚焦于JavaScript的基础知识,特别是`...学习并熟练运用这些知识点,对于提升前端开发能力至关重要。
在Java编程语言中,方法的重写和多态是面向对象设计的重要概念,它们使得代码更加灵活和可扩展。下面将详细阐述这两个概念及其应用场景...通过理解并熟练运用这些概念,开发者可以编写出更具扩展性和维护性的软件系统。
在Java编程语言中,`instanceof`关键字是一个非常重要的概念,尤其对于理解面向对象编程的精髓至关重要。...通过深入学习和实践,开发者能够更熟练地在不同场景下运用`instanceof`,提高代码的质量和效率。
在JavaScript中,`instanceof`运算符是用来检测一个对象是否属于某个构造函数的实例,或者更具体地说,是否在该对象的原型链上能找到构造函数的`...正确理解和运用`instanceof`可以帮助我们编写更加健壮和准确的代码。
在Java编程语言中,`super`关键字和`instanceof`运算符是两个非常重要的概念,它们在处理类的继承关系时发挥着关键作用。本文将详细介绍这两个关键字的...理解并熟练运用这两个关键字,将有助于提升你的Java编程能力。
在PHP编程中,`instanceof` 是一个非常重要的类型运算符,它用于检查一个变量是否是某个类的实例,或者是该类的子类实例...在实际编程中,结合相关参考资料,如 PHP 官方文档,可以帮助你更好地理解和运用这些知识点。
`instanceof`运算符是JavaScript中用于判断一个对象是否是由特定的构造...理解并熟练运用`instanceof`运算符是深入学习JavaScript原型和面向对象编程的关键。在实际开发中,正确使用它可以提高代码的健壮性和可维护性。
### Java语言基础入门教程知识点详解 ...掌握这些概念有助于开发者更好地理解和运用Java面向对象编程的核心原理和技术。此外,还介绍了包的概念及其用途,这对于项目管理和代码组织同样非常重要。
在JavaScript中,`instanceOf`是一个非常常用的运算符,它用于...总之,理解并熟练运用`instanceOf`对于深入掌握JavaScript的面向对象编程非常重要。通过本文的介绍和手写实现,希望你对`instanceOf`有了更深刻的认识。
在JavaScript中,`instanceof` 是一个非常常用的运算符,用于判断一个对象是否属于某个类或是否具有某个构造函数的原型链。这个操作符在进行类型...在实际开发中,合理运用`instanceof`可以确保代码的健壮性和准确性。
它们各有优势和局限,理解并合理运用它们能帮助开发者编写更加健壮和准确的代码。在进行类型检查时,要根据实际情况灵活选择合适的方法,并注意可能出现的特殊情况,如Array类型判断返回'object'、arguments对象的...
在JavaScript中,`instanceof`是一个非常常用的运算符,它用于判断一个对象是否属于某个类或构造函数的实例。这个运算符在进行类型检查时非常...在日常开发中,熟练运用这些知识能够帮助我们编写更加健壮和灵活的代码。
理解并熟练运用`typeof`和`instanceof`对于调试和优化JavaScript代码至关重要。在处理复杂的数据结构和对象交互时,这两个操作符可以帮助我们确保代码按照预期执行。同时,它们也是面试中常见的JavaScript知识点,...
在Java编程语言中,"instanceof"关键字和try...在实际编程中,理解并灵活运用`instanceof`和try-catch可以帮助我们编写更健壮、更具可维护性的代码。在涉及类型转换和异常处理的场景时,应根据具体情况选择合适的机制。
在JavaScript中,正确地识别和理解数据类型是编程的基础。`typeof` 和 `instanceof` 是两种常用的检测数据类型的方法,它们各有特点和适用场景。...阅读这些文件可以帮助你更好地理解和运用这些概念。
总结起来,理解和熟练运用对象类型转换和`instanceof`是Java开发者的基本技能。它们帮助我们在处理继承和多态时保持代码的健壮性和灵活性。通过深入理解这些概念,我们可以编写出更高效、更易于维护的面向对象程序。...