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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© HM王琦 中级黑马   /  2013-3-2 19:45  /  2459 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 [野狼]~@ 于 2013-3-6 23:33 编辑

class Person
{
private String name;
private int age;
Person(String name,int age)
{
  this.name = name;
  this.age = age;
}

public boolean equals(Object obj)
{
  if(!(obj instanceof Person))//这里的instanceof判断的是什么?
   return false;
  Person p = (Person)obj;
  //System.out.println(this.name+"....."+p.name);
  return this.name.equals(p.name) && this.age == p.age;
}
/**/
public String getName()
{
  return name;
}
public int getAge()
{
  return age;
}
}

instanceof在什么时候用?

3 个回复

倒序浏览
class Person
{
private String name;
private int age;
Person(String name,int age)
{
  this.name = name;
  this.age = age;
}

public boolean equals(Object obj)
{
  if(!(obj instanceof Person))//这里的instanceof判断的是什么?
//这里instaceof是判断你传进来的对象是否是Person类型..
一般不确定用Object类型传进来的值,,就可以用instanceof判断/.
return false;
  Person p = (Person)obj;
  //System.out.println(this.name+"....."+p.name);
  return this.name.equals(p.name) && this.age == p.age;
}
/**/
public String getName()
{
  return name;
}
public int getAge()
{
  return age;
}
}

评分

参与人数 1黑马币 +6 收起 理由
黄玉昆 + 6

查看全部评分

回复 使用道具 举报
instanceof 判断左边的类型是否 是和右边的类型一致,一般在类型向下转型时使用,判断要转的类型是否是想要使用类型,这样起到防止类型转换异常抛出。
  例如:现在有一个person类,Student类继承了person类,如果在一个集合里既存有person对象,也存有Student对象,或者还有其他对象,
            这时如果你想调用Student对象里的某个方法时,需要从集合里找出哪个是Student对象,这就要使用到 instanceof做出判断了, if(Obj  instanceof  Student){//...}
           
   希望能帮上你..!!

评分

参与人数 1黑马币 +6 收起 理由
黄玉昆 + 6

查看全部评分

回复 使用道具 举报
instanceof是一个判断关键字,判断左边的对象是否属于右边.如果属于就返回ture,不属于就返回flase;
用于类对象判断是否为该类子对象然后作出反应,一般用在多态里,
(Object obj)  
if(obj instanceof Student) 如果输入的类型不是Student的话,就抛异常或者其他动作,否则执行指定操作.

评分

参与人数 1黑马币 +6 收起 理由
黄玉昆 + 6

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马