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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Frank2008 中级黑马   /  2015-7-19 19:40  /  284 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Object类的方法
        1:创建Student对象并打印效果
                A:打印他的时候,默认调用的他的toString方法
                B:Student没有toString方法,调用的是Object的toString方法
                C:object的toString方法 返回值是 包名...类名+@+16进制地址值 ,我们一般使用toString方法都要重写他
       
        2:关于==做比较的问题
                A:基本类型的比较: 比较的是值
                B:引用类型的比较: 比较的是引用类型所指向的地址值

        3:自己实现对象的成员变量数据的比较
                “2”,“3”目的是为了引出Object中的equals方法
       
        4:Object中的equals方法
                源码其实就是用“==”比较的两个变量
                我们一般需要重写,如何重写?
                        1):如果是这个对象
                        2):如果不是这个对象,而又不是这一类对象
                        3):如果他是这一类对象,那就好说了,强转,然后比较每个变量的值
                代码实现:
                        public boolean equals(Object obj)
                        {
                                //为了提高代码的效率
                                if( this == obj)
                                {
                                        return true;
                                }

                                //为了提高代码的健壮性
                                if( !( obj instanceof Student) )
                                {
                                        return false;
                                }
                                Student s = (Student)obj;   //向下转型
                                return this.age == s.age;
                        }

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马