java基础 Object Objects

本文介绍了Java中Object类的基本概念及其核心方法toString()和equals(),强调了它们在实际开发中的作用。此外,还详细讲解了从JDK1.7开始引入的Objects类,特别是其equals()方法和isNull()方法,如何提供更安全的对象比较和空值检查。通过示例代码展示了如何在子类中重写equals()以实现内容比较,以及Objects类的实用功能。
摘要由CSDN通过智能技术生成


前言

java 基础复习中…闲着总结一下


一、Object是什么?

:::
包:java.lang.Object
Object类是Java中的祖宗类。
一个类要么默认继承了Object类,要么间接继承了Object类。
Object类的方法是一切子类都可以直接使用的。

二、Object类的常用方法:

1.public String toString():

父类toString()方法存在的意义就是为了被子类重写,以便
返回对象的内容信息输出!!

默认是返回当前对象在堆内存中的地址信息:
               com.xxx.xxx.Student@735b478
            默认的地址信息格式:类的全限名@内存地址
             直接输出对象名称,默认会自动调用toString()方法,所以输出对象toString()调用可以省略不写
             开发中直接输出对象,默认输出对象的地址其实是毫无意义的。
             开发中输出对象变量,更多的时候是希望看到对象的内容数据而不是对象的地址信息!

2.public boolean equals(Object o):

如果要比较两个对象的内容,需要重写对象的equals方法

 -- 默认是比较两个对象的地址是否相同。相同返回true,反之。
            -- 直接比较两个对象的地址是否相同完全可以用“==”替代equals。
               所以equals存在的意义是为了被子类重写,以便程序员可以
                自己来定制比较规则。

代码如下 Student:

//  s1.equals(s2)
    // 需求:只要两个对象的内容一样,我们就认为他们是相等的。
    // 比较者:s1 == this
    // 被比较者:s2 == obj
   @Override
   public boolean equals(Object obj){
      // 1.必须是学生和学生比较,否则返回false
       if(obj instanceof Student){
           // 2、obj是学生,开始比较内容
         Student s2 = (Student) obj;
            return s2.age == this.age && s2.name.equals(this.name)
                   && s2.sex == this.sex;
      }
       return false;
   }

三、Objects类的使用:

Objects类与Object还是继承关系。
Objects类是从JDK 1.7开始之后才有的。

1. public static boolean equals(Object a, Object b)

-- 比较两个对象的。
        -- 底层进行非空判断,从而可以避免空指针异常。更安全!!推荐使用!!优雅!
         public static boolean equals(Object a, Object b) {
                return (a == b) || (a != null && a.equals(b));
         }

2. public static boolean isNull(Object obj)

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

public class ObjectsDemo {
    public static void main(String[] args) {
        Student s1 = null;
        Student s2 = new Student();
        // System.out.println(s1.equals(s2));
        System.out.println(Objects.equals(s1 ,s2));

        System.out.println(s1 == null);// true
        System.out.println(Objects.isNull(s1)); // true
        System.out.println(s1 == null);// false
        System.out.println(Objects.isNull(s2)); // false

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

GotBy

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

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

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

打赏作者

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

抵扣说明:

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

余额充值