解读equals并重写

解读equals并重写

对比
User User1 = new User("ll",1);
User User2 = new User("ll",1);
System.out.println(User1.equals(User2));

User类有name和age两个属性。创建两个User的对象里面的属性一样,但是equals对比结果为false
因为User的默认父类Object中equals的是地址,我想要对比User的属性想要重写equals

重写equals
class User{
    public String name;
    public int age;
    @Override
    public boolean equals(Object obj) {
        //判断是否对比的是同一个类
        if(this == obj)
            return true;
        //判断值是否为空
        else if(obj == null)
            return false;
        //判断是否是对比类型
        else if (getClass() != obj.getClass())
            return false;
        //一个向下转型
        User othis = (User) obj;
        //对比age和name
        return age==othis.age&&Objects.equals(name,othis.name);
    }
    public User(String name,ing age){
        this.name=name;
        this.age=age;
    }
}