Java中的instanceof运算符的执行原理和使用参考
来源:互联网 发布:淘宝女装装修图片 编辑:程序博客网 时间:2024/05/18 03:09
Java中instanceof运算符
Java中的instanceof运算符用来判断一个对象是否属于指定的类以及该类的后代类,也可以判断一个对象所属的类是否实现了指定的接口,如果属于返回true,否则返回false; instanceof运算符的使用:boolean result = obj instanceof ClassName/Interface; 这里需要注意的是:obj一般是存放对象引用的对象变量,而instanceof运算符是将obj中引用的对象实例的类型与指定类型ClassName进行比较;如果obj中存放的是类A的实例对象的引用,则instanceof运算符将比较类A是否与类名为ClassName的类是同一个类,或者类A是否继承于类名为ClassName的类,即是否为类名为ClassName的类的后代类,或者obj是否为实现了接口Interface的类的实例,如果符合上述条件之一,则返回结果为true;否则返回false; 下面是用于验证上述结论的示例代码:
package com.verify_instanceof; public class TestInstanceOf { public static void main(String[] args) { //下面四行代码用来证明:instanceof运算符是判断对象变量中存放的引用的所属类是否与指定类相同,或者为指定类的后代类;而不是判断对象变量的所属类是否为指定类,或指定类的后代类 A a1 = null; RootInterface ra = new A(); System.out.println("a1 instanceof A:"+(a1 instanceof A));//null不是A类的实例对象,也不是A类的后代类的实例对象,故返回结果为false; System.out.println("ra instanceof RootInterface:"+(ra instanceof RootInterface));//true,原因在于对象变量ra中存放的引用的所属类为类A,而类A实现了接口RootInterface,可以理解为类A是接口RootInterface的子类 System.out.println("ra instanceof A:"+(ra instanceof A));//对象变量ra中存放的引用的所属类为A类,故返回结果为true; //下面的代码用于验证只要对象变量中存放的引用的所属类是指定类或者是指定类的后代类,结果就为true;反之,结果为false; RootInterface rb = new B(); RootInterface rc = new C(); System.out.println("rb instanceof A:"+(rb instanceof A));//true,原因在于对象变量rb中存放的是类B的实例对象的引用,而指定类为类A,类B为类A的直接后代类,故返回true System.out.println("rb instanceof B:"+(rb instanceof B));//true,原因在于对象变量rb中存放的是类B的实例对象的引用,而指定类就是类B,两个类为同一个类,故返回true System.out.println("rc instanceof A:"+(rc instanceof A));//true,原因在于对象变量rc中存放的是类C的实例对象的引用,而指定类为类A,类C为类A的间接后代类,故返回true System.out.println("rb instanceof C:"+(rb instanceof C));//false,原因在于对象变量rb中存放的是类B的实例对象的引用,而指定类为类C,类B不是类C的后代类,故返回false } }
以下是运行结果:
阅读全文
0 0
- Java中的instanceof运算符的执行原理和使用参考
- Java中的instanceof运算符
- java 中的instanceof 运算符
- java 中的instanceof 运算符
- java 中的instanceof 运算符
- java的instanceof 运算符
- java的instanceof运算符
- js运算符instanceof的工作原理
- 关于java中的instanceof运算符
- 深入浅析JAVA中的instanceof运算符
- java中instanceof运算符的意义和用法
- JAVA运算符 instanceof
- Java instanceof 运算符
- Java instanceof 运算符
- java instanceof 运算符
- Java 中 instanceof 运算符的用法
- javascript中的instanceof运算符
- js中的instanceof运算符
- unity -- 关于文字text和图片image等组件一起居中解决方案
- 个人对kobject的一点研究
- 对于JQuery中的serialize()、serializeArray()、param()方法和map()
- arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别
- linux命令——more
- Java中的instanceof运算符的执行原理和使用参考
- 关于JDBC begin failed
- Java中如何将输入的信息写入文本中
- Word2010文档中巧用文本框创建连接
- 【Python编程:从入门到实践】第九章:类
- android开发中单例造成的内存泄漏原因及解决方案
- 什么是事务(transaction)?它有什么好处
- error flag
- 字符同构-LintCode