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

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

instanceof是个什么

15 个回复

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