18:Object类

Object类

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

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

Object 类可以显示继承,也可以隐式继承,格式如下:

显示继承:

public class Demo02Object extends Object {
    
}

隐式继承:

public class Demo02Object {
    
}

Object 的 toString 方法

Object toString() 方法用于返回对象的字符串表示形式。语法如下

object.toString()

返回值:

返回对象的字符串表示形式。

默认返回格式:对象的 class 名称 + @ + hashCode 的十六进制字符串

例:

package com.itlb.array;

public class Demo02Object {
    public static void main(String[] args) {
        Person p = new Person("张三");
        String s = p.toString();
        System.out.println(s);  //直接打印,打印地址值
        System.out.println(p);  //直接打印,打印地址值

    }
}

class Person{
    private String name;

    //直接打印没有意义,需要重写Object类中的toString方法;打印对象属性name
    @Override
    public String toString() {
        return name;
    }

    public Person(String name) {
        this.name = name;
    }
}

运行结果:

张三
张三

Object 的 equals方法

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

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

注意:如果子类重写了 equals() 方法,就需要重写hashCode() 方法。比如 String 类就重写了 equals() 方法,同时也重写了 hashCode() 方法。

语法如下:

object.equals(Object obj)

参数

  • obj - 要比较的对象。

返回值

如果两个对象相等返回 true,否则返回 false。

public class Deno03 {
    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

具体的方法请查询API文档

posted @ 2021-08-03 21:41  Happy*^_^*  阅读(45)  评论(0)    收藏  举报