黑马程序员技术交流社区
标题:
instanceof是个什么
[打印本页]
作者:
18664300701
时间:
2015-9-16 00:35
标题:
instanceof是个什么
instanceof是个什么
作者:
xiaote0225
时间:
2015-9-16 01:11
在进行强制转型前,为保证安全,可以使用instanceof关键字进行判断:
p是Student的父类:
if(p instanceof Student){
Student stu = (Student)p;
}
作者:
瑞雪雄起
时间:
2015-9-16 02:33
其实instanceof是个互相关系
如果有A instanceof B
那么一定有B instanceof A
作者:
阮文江
时间:
2015-9-16 08:52
判断所属关系的
作者:
anyway1919
时间:
2015-9-16 18:48
赞一个,同样也有这方方面的疑惑
作者:
天涯莫名
时间:
2015-9-16 20:14
判断对象的关系
作者:
foreverfun
时间:
2015-9-16 21:16
好像在很多地方用到
作者:
hhuxiaolang
时间:
2015-9-16 21:32
判断所属关系
作者:
1975532882
时间:
2015-9-16 21:36
同疑惑
作者:
iceknc
时间:
2015-9-16 22:24
A instanceof B,判断A是不是B这个类的实例对象,返回的是布尔型,instance是实例的意思,加上介词of,其实光看字面意思都能知道个大概。
作者:
xiaoya0o0o
时间:
2015-9-16 23:17
强制转换时,一定要转换为"它所存储的子类对象",否则会在运行时抛出:ClassCastException
为了防止这种异常,我们可以在"强制转换前"先进行判断,后转换:
判断,使用关键字:instanceof(只能用于引用数据类型的判断)
格式:变量 instanceof 某类类型
返回:boolean值;如果为true:表示左边的"变量"是右边的"某类类型",可以安全强制转换
如果为flase:表示左边的"变量"不是右边的"某类类型";
【向下转型的注意事项】
Animal a = new Dog();
//Cat c = (Cat)a;向下转型因为不明确具体子类对象类型,所以容易引发ClassCastException异常。
所以为了避免这个问题,需要在向下转型前,做类型的判断。
判断类型用的是关键字 instanceof
if(a instanceof Cat)//a指向的对象的类型是Cat类型。
{
//将a转型Cat类型。
Cat c = (Cat)a;
c.catchMouse();
}
else if(a instanceof Dog)
{
Dog d = (Dog)a;
d.lookHome();
}
复制代码
作者:
芝麻糊
时间:
2015-9-17 08:42
补充一点 这是一个运算符 不是一个方法
作者:
Adualtbird
时间:
2015-9-17 08:53
关键字,判断前面的对象是否是后面类的实例
作者:
silencea
时间:
2015-9-17 09:36
面向对象的内容,我也正在学
作者:
leaf168
时间:
2015-9-17 18:39
关键字 instanceof 判断前边的引用是否是后边的数据类型
作者:
小二儿
时间:
2015-9-17 20:40
判断是不是属于那个类的,判断所属的,看看是不是匹配
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2