Java中的Object类的toString()方法,equals()方法

Object类是所有类的父类,若没有明确使用extends关键字明确表示该类继承哪个类,那么它就默认继承Object类,也就可以使用Object中的方法:

1.toString

如果输出一个对象的时候,会使用Object类的toString方法,结果会输出一个对象的哈希code码,地址的字符串

Bridge bri=new Bridge();
System.out.println(bri);

通过重写toString方法来输出对象的属性

    String name="子类的名字";
    int age=3;
    
    @Override
    public String toString() {
        return "Bridge [name=" + name + ", age=" + age + "]";
    }

返回的是一个字符串

2.equals()方法

 (1)默认的方法是比较对象的引用是否在同一地址

        Bridge bri=new Bridge();
        Bridge bri2=new Bridge();
        if (bri.equals(bri2)) {
            System.out.println("俩个对象相同");
        }else{
            System.out.println("俩个对象不相同");
        }

如果用bri==bri2是比较的俩个引用变量,所以也是比较的内存地址

(2)重写以后可以比较俩个对象的值是否相同

public class Bridge{
    public int age=3;
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        Bridge other = (Bridge) obj;
        if (age != other.age)
            return false;
        return true;
    }
}
public class Test {
    public static void main(String[] args) {
        Bridge bri=new Bridge();
        bri.age=1;
        Bridge bri2=new Bridge();
        bri2.age=1;
        if (bri.equals(bri2)) {
            System.out.println("俩个对象相同");
        }else{
            System.out.println("俩个对象不相同");
        }
    }
}

 equals和==详解见http://www.cnblogs.com/zhxhdean/archive/2011/03/25/1995431.html

原文地址:https://www.cnblogs.com/-beauTiFul/p/6522753.html