Object类

本文解析了Java中Object类的基础结构,包括其作为所有类的根父类、空参构造器、对象比较(equals方法)以及获取对象信息(toString方法)。重点讲解了equals与==的区别,以及如何在自定义类中重写equals方法以实现更精确的内容比较。
摘要由CSDN通过智能技术生成
Object类结构剖析

java.lang.Object类

  1. Object类是所有Java类的根父类
  2. 如果在类的声明中未使用extends关键字指明其父类,则默认为java.lang.Object
  3. Object类中的功能(属性、方法)就具有通用性
  4. Object类只声明了一个空参构造器
    利用Object类可以接收全部类的对象,向上转型
对象比较:equals

==与equals()区别

  • 回顾==的使用:

    • 可以使用在基本数据类型变量和引用数据类型变量中
    • 如果比较的是基本数据类型的变量:比较两个变量保存的数据是否相等(不一定类型相同)
    • 如果比较的是引用数据类型的变量:比较两个对象的地址值是否相同,即两个引用是否指向同一个对象实体
  • equals()方法的使用:

    • 是一个方法,而非运算符
    • 只能适用于引用数据类型
    • Object类中equals()的定义:
        public boolean equals(Object obj){
            return (this == obj);
        }
    

    说明:Object类中定义的equals()和==的作用是相同的:比较两个对象的地址值是否相同,即两个引用是否指向同一对象

    • 像String、Date、File、包装类等都重写了Object类中的equals()方法。重写以后,比较的不是两个引用的地址是否相同,而是比较两个对象的实体内容是否相同。
    • 通常情况下,自定义的类如果使用equals()的话,也通常是比较两个对象的"实体内容"是否相同。那么就需要对Object类中的equals()进行重写。
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if(obj instanceof Circle){
            Circle c = (Circle) obj;
            return this.radius == c.radius;
        }
        return false;
    }
    
取得对象信息:toString()
  1. 当输出一个对象的引用时,实际上就是调用当前对象的toString()方法

  2. Object类中toString()的定义:

    pubic String toString(){
    return getClass().getName() + ‘@’ + Integer.toHexString(hashCode());
    }

  3. 像String、Data、File、包装类都重写了Object类中的toString(),使用调用对象的toString()时,返回“实体内容”信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值