栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java 中的Object类与Objects类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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方法在进行对象的比较会更安全(严谨的添加了非空校验)。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1004360.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号