Object类
任何子类都充Object那里继承了equals和toString;
1. Object常用方法:toString和equals,r
2. Objects常用方法:equals, 此方法的作用同Object类的equals()方法的作用一样,只是此方法可以避免“空指针异常”。此方法内部也是基于参数对象的equals()方法的。
Object和Objects的equals方法不同点:object的equals是比较两个对象的属性是否一样,Objects是比较两个参数对象是否相同.
3. toString方法
class leiA{
private String name;//姓名
private int age;//年龄
//全参构造函数
public leiA(String name, int age) {
this.name = name;
this.age = age;
}
//无参数构造
public leiA() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
leiA leiA = (leiA) o;
return age == leiA.age &&
Objects.equals(name, leiA.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
@Override
public String toString() {
return "员工{" +
"姓名='" + name + '\'' +
", 年龄=" + age +
'}';
}
}
public class Test {
public static void main(String[] args) {
leiA leiA=new leiA("nice",15);
leiA leiA1=new leiA("ros",18);
leiA leiA2=new leiA("nice",15);
//避免空指针异常,如果leiA为空用leiA.equals(leiA2)会出现空指针异常
if(Objects.equals(leiA,leiA2)){//相等为true
System.out.println("true");
//用toString方法需要在类中重写
System.out.println(leiA);
}else{
System.out.println("false");
}
//必须重写equals方法
if(leiA.equals(leiA2)){//相等为true
System.out.println("true");
}else{
System.out.println("false");
}
}
}