码迷,mamicode.com
首页 > 编程语言 > 详细

java中复写equals方法,比较值大小

时间:2016-04-13 21:10:19      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:private   equals   object   return   public   

/*
*比较过程思路:
*1、两个对象指向位置相同,那么他们就相等,return后跳出函数,不再往下执行
*2、指向位置不同,有3情况
*a:这两对象类型相同,并且内容相同,也属于相等
*b:类型相同,内容不同,属于不等;
*c:类型不同,属于不等
*/

class ObjectEquals{
    public static void main(String[]args){
        Person p1 = new Person(4);
        Person p2 = new Person(4);    
        System.out.println(p1.equals(p2));
    }
}

class Person{
    private int age;
    public Person(int age){
        this.age = age;    
    }    
    public boolean equals(Object obj){
        //内存地址相同,返回true不再执行
        if(this == obj)
            return true;
                        
        //位置不同,类型相同    
        if(obj instanceof Person){
            Person p = (Person)obj;//多态,向下转型,父类对象引用子类特有对象时,应向下转型
            return this.age == p.age;
         }
         //位置不同,类型不同,返回false
         else
          return false;         
    }        
}


java中复写equals方法,比较值大小

标签:private   equals   object   return   public   

原文地址:http://9274590.blog.51cto.com/9264590/1763370

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!