调用idea的自动生成方法时,观察了equals方法覆写,理解并码了一遍
import java.util.Objects;
public class ToString {
private String name;
private int age;
ToString(String name, int age)
{
this.name=name;
this.age=age;
}
@java.lang.Override
public String toString()
{
return this.name;
}
@java.lang.Override
public boolean equals(Object o) {
if(this == o){
return true;
}
if(null==o||this.getClass()!=o.getClass())
{
return false;
}
//如果没有上面的class判断,这里转型会出错
ToString toString = (ToString)o;
return this.age==toString.age && Objects.equals(name,toString.name);
}
@java.lang.Override
public int hashCode() {
return Objects.hash(name, age);
}
public static void main(String[] args)
{
ToString toString = new ToString("zhangsan",18);
ToString toString2 = new ToString("lisi",20);
ToString toString3 = new ToString("zhangsan",18);
System.out.println(toString.toString());
System.out.println(toString.equals(toString2));
System.out.println(toString== toString2);
System.out.println(toString.equals(toString3));
System.out.println(toString== toString3);
}
}