1-22 重写equals

Posted zxbaoer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1-22 重写equals相关的知识,希望对你有一定的参考价值。

package com.student;
//重写比较规则,判断Student两学员是否是同一个对象
//如果两学员的姓名学号相同则是同一个对象
public class Student {
    //学员属性
    private String name;
    private int id;
    private String sex;
    
    /**
     * @param name
     * @param id
     */
    public Student(String name, int id,String sex) {
        this.name = name;
        this.id = id;
        this.sex = sex;
    }
    
    //重写equals方法
    public boolean equals(Object obj) {
        if(this == obj) {
            return true;
        }
        if(!(obj instanceof Student)) {
            return false;
        }
        Student s = (Student)obj;
        if(this.name.equals(s.name) && this.id==s.id) {
            return true;
        }else {
            return false;
        }
        
    }
    
    //重写equals方法
//    public boolean equals(Object obj) {
//        if(obj instanceof Student) {
//            Student stu = (Student)obj;
//            if(this.name.equals(stu.name)&&this.id==stu.id) {
//                return true;
//            }
//        }
//        return false;
//    }
    
    //重写toStrint方法
    public String toString() {
        return name;
    }


    //测试方法
    public static void main(String[] args) {
        Student s1 = new Student("张三", 12,"男");
        Student s2 = new Student("张三",12,"男");
        System.out.println(s1 == s2);
        System.out.println(s1.equals(s2));
        
        System.out.println(s1);
        
        String s = "bbb";
        //打印输出s的时候默认调取了toString()方法
        System.out.println(s);
    }
}

技术分享图片

 

以上是关于1-22 重写equals的主要内容,如果未能解决你的问题,请参考以下文章

重写equals方法(未完)

重写HashCode和equals规范

Java 重写equals方法

SpringBoot 重写hashCode方法和equals方法

重写了equals方法为何需要重写 hashCode

重写equals 方法的注意事项