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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 林豪 中级黑马   /  2012-4-30 21:55  /  2802 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

instanceof要怎么用呢?
能不能举几个例子

7 个回复

倒序浏览
这就是去判断对象的类型。
判断对象是否属于你定义的类型。
  1. public class Test{
  2. }

  3. public vid test(){
  4.    Test test = new Test();
  5.    System.out.println(test instanceof Test );
  6. }
复制代码
这里test是Test类型的。那就就会输出true;
如果不是的话就会是false;不知道能不能帮上你!谢谢!

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
//当你传递一个类类型变量到一个方法中的时候
//比较2个对象的成员属性,如果2个对象不是同一个类产生的实例对象,
//你觉的他们有可以性吗?
//例如,你要比较2个人的年龄是否是一样的,你肯定会那一个人的年龄去
//和另外一个人比较,但是在你写方法的时候,你给确定调用者给你传进来的
//就是一个人吗?可能是一个动物 ,那我们怎么去比较,所以当外界调用我们的
//方法时,我们应该做健壮性的判断,提高程序的安全性,

//用this instanceof d 判断传进来的是否和当前对象属于同一类型
//不是,直接抛异常,是,你才有资格和我比较。o了。

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
用于判断类型是否相同
用在多太上
代码演示:
abstract class Animal
{
        abstract void eat();
}


class Dog  extends Animal
{
        void eat()
        {
                System.out.println("啃骨头");
        }
        void lookHome()
        {
                System.out.println("看家");
        }
}

class Cat extends Animal
{
        void eat()
        {
                System.out.println("吃鱼");
        }
        void catchMouse()
        {
                System.out.println("抓老鼠");
        }
}

class Pig extends Animal
{
        void eat()
        {
                System.out.println("猪饲料");
        }
        void gongDi()
        {
                System.out.println("拱地");
        }
}


class DuoTaiDemo2
{
        public static void main(String[] args)
        {

               
                method(new Cat());
                method(new Dog());
        }
        public static void method(Animal a)//Animal a = new Cat();
        {
                if(a instanceof Cat)    // 对象 instanceof 类型 判断具体对象是否是指定的类型。
                                // instanceof是一个关键字,用于判断对象的类型,
                                // 什么时候用?当进行向下转型时,先判断该对象是否符合被转成的子类型。
                {
                        Cat c = (Cat)a;//ClassCastException
                        c.catchMouse();
                }
                else if(a instanceof Dog)
                {
                        Dog d = (Dog)a;
                        d.lookHome();
                }
       

                a.eat();
        }
}
这里简单说明,假如来了一个猫,你并不做对象类型判断就把他转成狗,那是不行的。这个关键字的用途就是判断对象类型是否相同。以后在写程序遇到类型转换的时候就可以用

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 周海诚 于 2012-5-1 10:01 编辑

"instanceof ":
用法:
trace(obj instanceof Panel);
说明:
如果 object 是 class 的一个实例,则 instanceof 运算符返回 true 。
如果 object 不是指定类的一个实例,或者 object 是 null ,则返回 false

代码解释最清楚:
1.
alert(""instanceofObject);//false
alert([]instanceofArray);//true
2.

function judge(){
var arr=new Array();
alert(typeof(arr));//object
alert((arr instanceof Array));//true
}

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
instanceof  的作用就是来判断一个对象是否属于某个类,判断的结果为布尔类型的,如 Person p=new Person()    p  instanceof  Person   就是true 了
回复 使用道具 举报
一个例子就够了:
String sg = "黑马";
System.out.println(sg instanceof String); //true
回复 使用道具 举报
instanceof用于判断对象的具体类型,只能用于引用数据类型判断,一般应用于向下转型
  public static void method(Animal a){
     a.eat();
   if(a  instanceof cat ){  //如果是猫就执行
Cat  c=(Cat)a;
  c.catchMouse();
  }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马