黑马程序员技术交流社区

标题: 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:表示左边的"变量"不是右边的"某类类型";

  1. 【向下转型的注意事项】
  2.         Animal a = new Dog();
  3.         //Cat c = (Cat)a;向下转型因为不明确具体子类对象类型,所以容易引发ClassCastException异常。
  4.         所以为了避免这个问题,需要在向下转型前,做类型的判断。
  5.         判断类型用的是关键字 instanceof
  6.         if(a instanceof Cat)//a指向的对象的类型是Cat类型。
  7.         {
  8.                 //将a转型Cat类型。
  9.                 Cat c = (Cat)a;
  10.                 c.catchMouse();
  11.         }
  12.         else if(a instanceof Dog)
  13.         {
  14.                 Dog d = (Dog)a;
  15.                 d.lookHome();
  16.         }
复制代码

作者: 芝麻糊    时间: 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