黑马程序员技术交流社区

标题: 程序有点儿搞不懂了 [打印本页]

作者: 励志Java_鸿政    时间: 2015-1-9 01:33
标题: 程序有点儿搞不懂了
package cn.itcast.collection;

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

        public String getName() {
                return name;
        }

        public void setName(String name) {
                this.name = name;
        }

        public int getAge() {
                return age;
        }

        public void setAge(int age) {
                this.age = age;
        }
        //该对象的字符串表示形式(若不写该方法则输出的是一个地址)
        public String toString(){
                return "Student " + name +"..."+ age;
        }
==============================================
        //去除new对象的重复
        public boolean equals(Object obj){
                if(obj == null)
                        return false;
                if( this == obj)
                        return true;
                if(obj instanceof Student){
                        Student s = (Student)obj;
                        //比姓名和年龄,相同返回真,不同返回假  this s
                        return this.name.equals(s.name) && this.age == s.age;
                }
                return false;
        }
}

就是一个外部的学生类,然后===========下面的这些东西,我只知道是用来取出new出来一个对象这中重复的!但是还是不太理解!能不能有人帮我注释一下!谢啦:)
.
作者: 潘耿威    时间: 2015-1-10 14:32
equals 重写了这个比较方法。不是取出重复的意思,用来判断是不是同一个引用,比较的是地址,如果相同就返回真。下一个判断,如果是同一个父类,那么就判断他们的值,如果值相同,也返回真。清楚明白了吧
作者: 励志Java_鸿政    时间: 2015-1-10 15:05
潘耿威 发表于 2015-1-10 14:32
equals 重写了这个比较方法。不是取出重复的意思,用来判断是不是同一个引用,比较的是地址,如果相同就返 ...

还是有点儿不太理解~我知道取出不是new对象的重复,如果要取出new出来的重复就不会了 , 看了这个也看的不太懂




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2