Java中所有类的都有一个超级父类(Object类),Object类中有equals()方法和toString()方法。
1. equals()方法
对于基础数据类型而言,equals()方法比较的是两个对象值是否相等。
对于引用数据类型而言,equals()方法比较的是两个对象在栈内存中地址是否相等。
我们自己定义的类中,可以重新超级父类Object中equals()方法,根据自己的需要,改写相等规则。
例如:
public class Client {
public static void main(String[] args) {
Dog d1 = new Dog(“beili”);
Dog d2 = new Dog(“beili”);
System.out.println(d1.equals(d2));
}
}
class Dog {
private String name;
private Integer age;
public Dog(String name) {
this.name = name;
}
public boolean equals(Object obj) {
Dog dog = null;
if (obj instanceof Dog) {
dog = (Dog) obj;
}
if (dog.name.equals(this.name)) {
return true;
} else {
return false;
}
}
}
2. toString()方法
在引用数据类型中,如果直接输出对象,那么则会默认的调用对象的toString()方法,toString()方法是Object类的方法。
toString方法中,除了包装类和String类之外,其他的类调用toString方法,返回数据类型@堆栈地址(HashCode)的字符串。
在实际的开发过程中,我们一般会重写toString(),返回该对象的特征性内容,重写toString()在实际开发中也是比较常见的。