java面向对象进阶:object类

Java Object 类是所有类的父类,也就是说 Java 的所有类都继承了 Object,子类可以使用 Object 的所有方法

classes-object

Object 类位于 java.lang 包中,编译时会自动导入,我们创建一个类时,如果没有明确继承一个父类,那么它就会自动继承 Object,成为 Object 的子类。

Object 类可以显示继承,也可以隐式继承,以下两种方式时一样的:

显示继承:

public class Runoob extends Object{

}

隐式继承:

 

public class Runoob {

}

Java Object equals() 方法

Object equals() 方法用于比较两个对象是否相等。

equals() 方法比较两个对象,是判断两个对象引用指向的是同一个对象,即比较 2 个对象的内存地址是否相等。

class RunoobTest {
    public static void main(String[] args) {
 
        // Object 类使用 equals() 方法
        // 创建两个对象
        Object obj1 = new Object();
        Object obj2 = new Object();
 
        // 判断 obj1 与 obj2 是否相等
        // 不同对象,内存地址不同,不相等,返回 false
        System.out.println(obj1.equals(obj2)); // false
 
        // obj1 赋值给 obj3
        // String 重写了 equals() 方法
        // 对象引用,内存地址相同,相等,返回 true
        Object obj3 = obj1;
        System.out.println(obj1.equals(obj3)); // true
    }
}
以上代码执行结果:
false
true

String 类重写了 equals() 方法,用于比较两个字符串是否相等:

class RunoobTest {
    public static void main(String[] args) {
 
        // String 类使用 equals() 方法
        // 创建两个对象
        String obj1 = new String();
        String obj2 = new String();
 
        // 判断 obj1 与 obj2 是否相等
        // 初始化的两个对象都为 null,所以是相等,返回 true
        System.out.println(obj1.equals(obj2)); // true
 
        // 给对象赋值
        obj1 = "Runoob";
        obj2 = "Google";
 
        // 判断 obj1 与 obj2 是否相等
        // 两个值不同,内存地址也不同,所以不相等,返回 false
        System.out.println(obj1.equals(obj2)); // false
 
    }
}

以上程序执行结果为:

 true
false
阅读剩余
THE END