在Java中,所有的类都是从Object类继承而来的,因此Object类是Java中所有类的父类。Object类提供了一些常用的方法,可以用来处理对象和对象数组。以下是Object类中常用的方法:
equals(Object obj):比较两个对象是否相等。默认情况下,equals方法使用的是==操作符进行比较,因此对于引用类型的对象来说,比较的是两个对象的引用是否相等。如果需要比较对象的内容是否相等,需要重写equals方法。
hashCode():获取对象的哈希码。哈希码是一个int类型的值,用来标识对象的唯一性。默认情况下,哈希码是根据对象的地址计算得到的,因此对于不同的对象,哈希码一定不同。如果需要在使用哈希表等数据结构时使用对象作为键值,需要重写hashCode和equals方法。
toString():将对象转换成字符串表示。默认情况下,toString方法返回对象的类名和哈希码,例如java.lang.Object@1234567。如果需要将对象的属性以字符串形式输出,需要重写toString方法。
以下是一个使用Object类中常用方法的示例:
public class MyClass {
    private int id;
    private String name;
    public MyClass(int id, String name) {
        this.id = id;
        this.name = name;
    }
    // 重写equals方法,比较两个对象的id和name是否相等
    @Override
    public boolean equals(Object obj) {
        if (obj instanceof MyClass) {
            MyClass other = (MyClass) obj;
            return this.id == other.id && this.name.equals(other.name);
        }
        return false;
    }
    // 重写hashCode方法,根据id和name计算哈希码
    @Override
    public int hashCode() {
        int result = 17;
        result = 31 * result + id;
        result = 31 * result + name.hashCode();
        return result;
    }
    // 重写toString方法,输出对象的id和name
    @Override
    public String toString() {
        return "MyClass{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }
}
// 使用Object类中的方法
public class Main {
    public static void main(String[] args) {
        MyClass obj1 = new MyClass(1, "John");
        MyClass obj2 = new MyClass(1, "John");
        // 使用equals方法比较两个对象是否相等
        boolean isEqual = obj1.equals(obj2);
        System.out.println(isEqual); // true
        // 使用hashCode方法获取对象的哈希码
        int hashCode = obj1.hashCode();
        System.out.println(hashCode); // 111598
        // 使用toString方法将对象转换成字符串表示
        String str = obj1.toString();
        System.out.println(str); // MyClass{id=1, name='John'}
    }
}
在上面的示例中,MyClass类重写了equals、hashCode
            
            
      
      
                  
                  
                  
                  
                    
                    
                    
                    
                    
                    
                    
                    
      
        
京公网安备 11010802030320号