java中instanceof和getClass()的作用
2015-09-19 22:08
656 查看
初学者难免有点混淆java中instanceof和getClass()的作用, 下面就来一一讲解。
父类A:
子类B: [/code]
构造对象 [/code]
[/code]
分析==>
用法:
英文:result = object instanceof class
中文:结果 = 某个实例对象 instanceof 某个类名
java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。
总结:
S(Object) instanceof T(Class)
简单来说,instanceof就是判断对象S是否是T类的实例,或者是T类的子类实例。
分析==>
getClass方法在JDK1.8中定义如下:
[/code]
功能:
返回在运行时期对象的类。
getClass() will be useful when you want to make sure your instance is NOT a subclass of the class you are comparing with.
instanceof: 主要用来判断 对象与类之间的关系。
getclass: 获取运行时期对象的类。
2、运用:
假设目前有父亲、孩子两个角色
场景一:
参加父亲朋友公司开业活动
此时,父亲本人可以亲自参加;
如果父亲当天正在外地出差,此时他的孩子可以替其参加。
当父类与子类都可以通过时,则使用instanceof
场景二:
父亲带孩子去游乐场玩,游乐场规定,一些小型游戏场地,只允许孩子进入,父亲只能在门外观看。
当限定到具体某一类时,则使用getclass+equals搭配
参考:
1、http://www.jb51.net/article/36114.htm
父类A:
[code]class A { }
子类B: [/code]
[code]class B extends A { }
构造对象 [/code]
[code]Object o1 = new A(); Object o2 = new B();
[/code]
一、instanceof
演示一:
1、o1 instanceof A => true 2、o1 instanceof B => false 3、o2 instanceof A => true // <================ HERE 4、o2 instanceof B => true
分析==>
用法:
英文:result = object instanceof class
中文:结果 = 某个实例对象 instanceof 某个类名
java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。
总结:
S(Object) instanceof T(Class)
简单来说,instanceof就是判断对象S是否是T类的实例,或者是T类的子类实例。
二、getclass
演示二:1、o1.getClass().equals(A.class) => true 2、o1.getClass().equals(B.class) => false 3、o2.getClass().equals(A.class) => false // <===============HERE 4、o2.getClass().equals(B.class) => true
分析==>
getClass方法在JDK1.8中定义如下:
[code]/** * Returns the runtime class of this Object */ public final native Class<?> getClass();
[/code]
功能:
返回在运行时期对象的类。
getClass() will be useful when you want to make sure your instance is NOT a subclass of the class you are comparing with.
三、instanceof与getclass的运用
1、区别:instanceof: 主要用来判断 对象与类之间的关系。
getclass: 获取运行时期对象的类。
2、运用:
假设目前有父亲、孩子两个角色
场景一:
参加父亲朋友公司开业活动
此时,父亲本人可以亲自参加;
如果父亲当天正在外地出差,此时他的孩子可以替其参加。
当父类与子类都可以通过时,则使用instanceof
场景二:
父亲带孩子去游乐场玩,游乐场规定,一些小型游戏场地,只允许孩子进入,父亲只能在门外观看。
当限定到具体某一类时,则使用getclass+equals搭配
参考:
1、http://www.jb51.net/article/36114.htm
相关文章推荐
- netbeans中表格使用
- 我们敬重你,java之父
- spring4整合hibernate5报错解决
- test5.11
- Java 多线程同步的五种方法
- test5.10
- Java基础知识强化48:Java中哈希码
- spring集成ehcache(注解使用,非hibernate集成,顺便谈谈自己的看法)
- Java ServletContext 详解
- java 类加载器
- Java中字符串比较相等问题
- 用NetBeans做一个简易计算器的几处要点
- java 编程IDE-eclipse使用基础问题
- How do I prevent Eclipse from hanging on startup?
- test5.9
- 各种排序算法的分析及java实现
- CAS+Spring security实现单点登录之配置篇
- Java 如何连接数据库SQL sever2008
- eclipse简单配置struct2 HelloWorld
- Java项目打包发布