java 中的Object类与Objects类

Object类

Object类的常用方法 

toString方法

 equals方法

Objects类 


Object类

  • 一个类要么默认继承了Object类,要么间接继承了Object类,Object类是Java中的祖宗类。
  • 当然了 Object作为所有类的父类,提供了很多常用的方法给每个子类对象拿来使用。

Object类的常用方法 

方法名称方法的说明
public String toString()默认是返回当前对象在堆内存中的地址信息:类的全限名@内存地址
public boolean equals(Object o)默认是比较当前对象与另一个对象的地址是否相同,相同返回true,不同返回false

toString方法

  • 默认是返回当前对象在堆内存中的地址信息:类的全限名@内存地址
  • 让子类重写,以便返回子类对象的内容。

如:下列创建一个学生类 使用toString方法返回该对象的地址。

public class test {
    public static void main(String[] args) {
        Student s = new Student("小明",20);
        System.out.println(s.toString());
    }
}

执行结果:

 toString方法的主要意义

父类toString()方法存在的意义就是为了被子类重写,以便返回对象的内容信息,而不是地址信息。

在Studeng类中将toString类重写:

 @Override
    public String toString() {
        return "Student类中(学生姓名="+name+"学生年龄="+age+")";
    }

然后在test类中执行:

public class test {
    public static void main(String[] args) {
        Student s = new Student("小明",20);
        System.out.println(s.toString());
    }
}

执行结果:

 equals方法

  • 作用:默认是与另一个对象比较地址是否一样
  • 意义:让子类重写,以便比较对象的内容是否相同。

在默认情况下 == 与  equals方法作用相同 都是比较地址是否一样

所以 equals的主要意义

为了被子类重写,以便子类自己来定制比较规则(比如比较对象内容)。
 

在Student类中将equals重写:

重写方法 自己定制相等规则
比较者 r1 = this
被比较者 r2 = o
    @Override
    public boolean equals(Object o) {
        if (o instanceof Student) {
            //判断两个对象是否相同
            Student r2 = (Student) o; //强转o
            return this.name.equals(r2.name) && this .age == r2.age;
        }else {
            return false; //学生类对象只能和学生类对象比较
        }
    }

然后在test类中执行:

public class test {
    public static void main(String[] args) {
        Student r1 = new Student("小明",20);
        Student r2 = new Student("小明",20);
        System.out.println(r1.equals(r2));
    }
}

执行结果:相同

Objects类 

Objects是一个工具类,提供了一些方法去完成一些功能

方法名

说明

public static boolean equals(Object a, Object b)

比较两个对象的,底层会先进行非空判断,从而可以避免空指针异常。再进行equals比较

public static boolean isNull(Object obj) 

判断变量是否为null ,为null返回true ,反之

Objects类 中也有equals方法

Objects.equals(name, student.name);

如下是java 官方写的 Objects类 中也有equals方法的源码

使用Objects的equals方法在进行对象的比较会更安全(严谨的添加了非空校验)。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

open_test01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值