java:equalsの例を複写する

5260 ワード

class User
{
    String name;
    int age;
    /*
    *      :
    *1、          ,       ,return     ,      
    *2、      , 3  
    *a:        ,      ,     
    *b:    ,    ,    ;
    *c:    ,    
    */
    public boolean equals(Object obj){
        //1、      ,      
        if(this == obj){
            return true;
            }
        

        //2、      
        //      equals,      User   ,  this   User  
        //  obj   User  ,     this     
        boolean b =obj instanceof User;
        if(b){
            /*
            *    ,obj User  ,  this       ( 1    )
            *obj     :
            *User obj = new User();
            *  
            *Object obj =new Object(); //Object  User   
            */

            //obj     User  ,       User    
                User u =(User)obj;
// equals name (jdk String equals ), equals
// == , equals if(this.age == u.age && this.name.equals(u.name)){ return true; }else{ return false; } }else { // , user , return false; } } }
class Test
{
    public static void main(String args[]){
        //   :   ,  
        User u1 = new User();
        User u2 = u1;
        u1.name="sss";
        boolean b = u1.equals(u2);
        System.out.println(b);

        //   :    ,  、    ,  
        User u3 = new User();
        User u4 = new User();
        u3.name="sss";
        u4.name="sss";
        boolean b2 = u3.equals(u4);
        System.out.println(b2);
    }
}
その他:
java:Stringはequalsと=比較の違いを使います。