Java常用类--Object类

Posted Z && Y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java常用类--Object类相关的知识,希望对你有一定的参考价值。

1. Object类

  • 大家都知道Object是所有类的父类,任何类都默认继承Object。
  • 理论上Object类是所有类的父类,即直接或间接的继承java.lang.Object类。
  • 由于所有的类都继承在Object类,因此省略了extends Object关键字。

Obejct类的主要方法

  • toString()
  • getClass()
  • equals()
  • clone()
  • finalize(
  • 其中toString(),getClass(),equals是其中最重要的方法。

在这里插入图片描述


注意: Object类中的getClass(),notify(),notifyAll(),wait()等方法被定义为final类型,因此不能重写

1.1 toString()

说明:Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。
在这里插入图片描述

  • 该方法用得比较多,一般子类都有覆盖。
  • 推荐类的所有属性都加上toString() 方法!
public class Student {
    private int age;
    private String name;

    @Override
    public String toString() {
        return "Student{" +
                "age=" + age +
                ", name='" + name + '\\'' +
                '}';
    }
}

1.2 getClass()

说明:返回次Object的运行时类类型。不可重写,要调用的话,一般和getName()联合使用,如getClass().getName();
在这里插入图片描述

package packge01;

public class Student {
    private int age;
    private String name;

    public static void main(String[] args) {
        Student student = new Student();
        System.out.println(student.getClass());
    }
}

在这里插入图片描述

package packge01;

public class Student {
    private int age;
    private String name;

    public static void main(String[] args) {
        Student student = new Student();
        System.out.println("Name: " + student.getClass().getName());
        System.out.println("Simple Name: " + student.getClass().getSimpleName());
    }
}

在这里插入图片描述


1.3 equals()

在这里插入图片描述

  • Object中的equals方法用来判断调用equals的对象和形参obj所引用的对象是否是同一对象。
  • 所谓同一对象就是指内存中同一块存储单元,如果this和obj指向的是同一块内存对象,则返回true,如果this和obj指向的不是同一块内存,则返回false。
  • 注意:即便是内容完全相等的两块不同的内存对象,也返回false。
  • 如果是同一块内存,则object中的equals方法返回true,如果是不同的内存,则返回false。
  • 如果希望不同内存但相同内容的两个对象equals时返回true,则我们需要重写父类的equal方法
  • String类已经重写了object中的equals方法(这样就是比较内容是否相等了)

查看String类源码equals方法
在这里插入图片描述
示例:

    public static void main(String[] args) {
        String a = new String("a");
        String A = new String("a");
        System.out.println(a == A);// false
        System.out.println(a.equals(A));// true
    }

1.4 clone()

浅拷贝和深拷贝



以上是关于Java常用类--Object类的主要内容,如果未能解决你的问题,请参考以下文章

Java常用类--Object类

Java常用类Object 基类 源码学习

Java中的集合和常用类

2021-08-17Java常用类

2021-08-17Java常用类

2021-08-17Java常用类