A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 18664300701 中级黑马   /  2015-9-16 00:35  /  1240 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

instanceof是个什么

15 个回复

倒序浏览
在进行强制转型前,为保证安全,可以使用instanceof关键字进行判断:
p是Student的父类:
                                if(p instanceof Student){
                                        Student stu = (Student)p;
                                }
回复 使用道具 举报
其实instanceof是个互相关系
如果有A instanceof B
那么一定有B instanceof A
回复 使用道具 举报
判断所属关系的
回复 使用道具 举报
赞一个,同样也有这方方面的疑惑
回复 使用道具 举报
判断对象的关系
回复 使用道具 举报
好像在很多地方用到
回复 使用道具 举报
判断所属关系
回复 使用道具 举报
同疑惑
回复 使用道具 举报
A instanceof B,判断A是不是B这个类的实例对象,返回的是布尔型,instance是实例的意思,加上介词of,其实光看字面意思都能知道个大概。
回复 使用道具 举报
强制转换时,一定要转换为"它所存储的子类对象",否则会在运行时抛出: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.         }
复制代码
回复 使用道具 举报
补充一点  这是一个运算符 不是一个方法
回复 使用道具 举报
关键字,判断前面的对象是否是后面类的实例
回复 使用道具 举报
面向对象的内容,我也正在学
回复 使用道具 举报
关键字 instanceof 判断前边的引用是否是后边的数据类型
回复 使用道具 举报
判断是不是属于那个类的,判断所属的,看看是不是匹配
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马