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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 胡团乐 中级黑马   /  2012-5-23 10:20  /  3703 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 胡团乐 于 2014-8-24 09:55 编辑

............

5 个回复

正序浏览
instanceof是判断该对象是否属于该类的。多用于多态。
回复 使用道具 举报
                //创建ClassName 类的对象   name
               
                ClassName name=new ClassName();
               
           //调用继承了Object 中定义的方法 getClass()
               
        System.out.println(name.getClass());
       
        System.out.println("-----------------");
       
        //判断 name 对象时是什么类型的
       
        if( name instanceof ClassName )
        {
                System.out.println("你是我的对象。");
        }
        else
        {
                System.out.println("你不是我的对象");
        }
        /*getClass() 你可以理解成 你创建的对象所在的类
         * instanceof 方法  运用在多态的时候 ,判读要转型成什么类别。
         *
         * 具体可以看 java 基础视频 8 天的  03 开始看
         * */
回复 使用道具 举报
instanceof的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据
进行类型判断时,建议使用equals中getClass方法
回复 使用道具 举报
本帖最后由 袁錦泰 于 2012-5-23 11:59 编辑
黑马—陈磊 发表于 2012-5-23 10:48
a.如果只允许同一个class 所产生的对象被视为相等,则通常使用getClass()。

b.只有在不得不「对子类对象与 ...
1.你能否解释一下使用instanceof对于子类对象与父类对象进行比较时,会带来什么问题?为什么会变得复杂?
2.什么是对称性相等? 使用instanceof为什么不会展现出对称性相等?
回复 使用道具 举报
a.如果只允许同一个class 所产生的对象被视为相等,则通常使用getClass()。

b.只有在不得不「对子类对象与父类对象进行比较」的场合中,才使用instanceof,而且你应该明白这样做带来的可能问题和复杂性。

c.如果使用instanseof,而且子类和父类都实现有equals(),则一定要知道,这种比较不会展现出所谓的「对称相等性」。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马