java中instanceof和getClass()的作用
初学者难免有点混淆java中instanceof和getClass()的作用, 下面就来一一讲解。
父类A:
class A { }
子类B:
class B extends A { }
构造对象
Object o1 = new A();
Object o2 = new B();
一、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通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。
二、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
/**
* Returns the runtime class of this Object
*/
public final native Class<?> getClass();
三、instanceof与getclass的运用
- instanceof: 主要用来判断 对象与类之间的关系。
- getclass: 获取运行时期对象的类。
java中instanceof和getClass()的作用的更多相关文章
- Java中instanceof与getClass的区别
在比较一个类和另一个类是否属于同一个类实例的时候,通常可以采用instanceof和getClass两种方法比较两者是否相等来判断,但是两者在判断上面是有差别的,下面通过代码说明: public cl ...
- java中instanceof和getClass()的区别分析
class A { } class B extends A { } Object o1 = new A(); Object o2 = new B(); o1 instanceof A => t ...
- Java中instanceof和isInstance的具体区别
Java中instanceof和isInstance的具体区别 在Think in Java泛型这一章遇到这个问题,一些博客模糊提到了isInstance是instanceof的动态实现,查阅文档参考 ...
- Java 中的接口有什么作用?以及接口和其实现类的关系?
Java 中的接口有什么作用? - Ivony的回答 - 知乎 https://www.zhihu.com/question/20111251/answer/16585393 这是一个初学者非常常见的 ...
- Java中HashCode()和equals()的作用
引言 我们知道Java中的集合(Collection)大致可以分为两类,一类是List,再有一类是Set. 前者集合内的元素是有序的,元素可以重复:后者元素无序,但元素不可重复. 这里就引出一个问题: ...
- Java中instanceof关键字的用法
Java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. instanc ...
- Java中instanceof用法
java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. 用法:resu ...
- java中instanceof的用法
java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. 用法:resu ...
- Java 中的接口有什么作用?好处?
接口的作用就是把使用接口的人和实现接口的人分开,实现接口的人不必要关心谁去使用,而使用接口的人也不用关心谁实现的接口,由接口将他们联系在一起. 很多JAVA初级程序员对于接口存在的意义很疑惑.不知道接 ...
随机推荐
- linux下配置squid http proxy过程
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国 ...
- 【转】memcached工作原理介绍
FROM: http://my.oschina.net/flynewton/blog/8984 官方主页: http://memcached.org/ 面临的问题 对于高并发高访问的Web应用程序来 ...
- VS2005工程迁移到Eclipse CDT
原工程在VS2005下创建,后迁移到Eclipse CDT 3.3.2 + MingGW下,并增加makefile文件. 原VS2005下工程Sample,实现了对类SampleClass封装,生成S ...
- 如何在mac上創建txt文档
文件編輯(Mac下的記事本),shift + command + T 進入純文字編輯模式!
- linux crt
1.仿真 终端选linux ANSI颜色[有颜色了] 使用颜色方案[颜色加深了] 2.外观 选传统的 ,utf-8 就不会乱码了
- iOS-MVVM设计模式
谈到MVVM不得不先说一下MVC,MVC(Model-View-Controller). Model模型:用来呈现数据. View视图:用来呈现用户界面. Controller控制器:用来调节模型与视 ...
- iOS之设置状态栏颜色
状态栏的字体为黑色:UIStatusBarStyleDefault 状态栏的字体为白色:UIStatusBarStyleLightContent 一.在info.plist中,将View contro ...
- failed to obtain a cell from its dataSource
stroyboard没有绑定标示 没有注册标示 cell为空时没有创建
- Android NDK调试方式之一: adb logcat
查看程序执行过程中所打印的log信息,用于辅助调试排除代码错误. 一.采用NDK安装包下Samples/hello-jni工程做实验 1)修改jni/hello-jni.c文件 #include &l ...
- 关于Git的工作区域和对应的文件状态.
Git是一个免费的.分布式的版本控制工具,或是一个强调了速度快的源代码管理工具.每一个Git的工作目录都是一个完全独立的代码库,并拥有完整的历史记录和版本追踪能力,不依赖于网络和中心服务器. Git ...