Object类的特点
* 是所有类的父类。
* 所有类都是直接或间接继承Object
我们知道Object是所有类的超类(父类),在这个类中有很多方法。比较常见的就有equals方法跟toString方法。
我对下面进行一个整理:
equals方法概述
* boolean equals(Object obj)
* 用来比较两个对象是否相同,相同返回true,否则false
* 默认是通过比较两个对象的地址值判断两个对象是否相同
重写equals方法的目的
* 在比较两个对象是否相同时不希望通过比较地址值判断,因为比较地址值没有任何意义。
而是希望通过比较两个对象的成员变量值来判断两个对象是否相同。
toString方法概述
* 默认返回值是:类全名@对象在内存中的地址值
* com.itheima._01Object类.Student@75828a0f
toString方法的调用时机
* 直接调用:通过对象名调用
* 间接调用:直接打印对象到控制台时,系统会自动调用该对象的toString方法
重写toString方法的目的
* 在打对象时不想看到对象在内存中的地址值,而是希望看到对象的成员变量值是什么。
关于Objects
跟Object类有点相似的就属于Objects工具类,跟Math,Arrays等工具类一样,都是直接使用类名调用对应的方法。
下面介绍Objects的常见方法:
‐ public static boolean equals(Object a, Object b)
* 比较对象a和对象b是否相同,相同返回true,否则false
* 底层依赖于对象的equals方法,如果对象没有重写equals方法则是通过比较地址判断
‐ public static Object requireNonNull(Object obj)
* 判断对象obj是否不为null,如果是则返回对象obj本身,否则抛出异常
‐ public static boolean nonNull(Object obj)
* 判断对象obj是否不为null,是返回true,否则false
‐ public static boolean isNull(Object obj)
* 判断对象obj是否为null,是返回true,否则false