4.5 Object类

思维导图:

 

4.5 Object类笔记总结


1. 定义和重要性

  • Java提供的Object类是所有Java类的根类。
  • 直接或间接,所有的Java类都继承自Object类。
  • 它被称为超类。

2. 默认行为

  • 当创建一个新的类且没有显式地使用extends关键字指定一个父类时,该类默认继承自Object类。

3. Object类的常用方法

  • boolean equals(Object obj): 判断两个对象是否相等。
  • int hashCode(): 返回对象的哈希值。
  • String toString(): 返回对象的字符串表示形式。

4. toString()方法

  • 默认情况下,toString()方法返回对象的类名,紧随其后是“@”符号和对象的哈希码的无符号十六进制表示。
  • 很多时候需要重写toString()方法,以提供有关对象的更有意义的信息。

示例代码:

class Animal {
    // ...
    @Override
    public String toString() {
        return "这是一个动物。";
    }
}
  • 虽然Animal类中并没有显式地定义toString()方法,但它从Object类继承了这个方法。当然,为了更具描述性,最好在Animal类中重写此方法。

5. 注意事项

  • 在实际开发中,很少直接使用Object类中的方法,因为它们可能不适合所有子类。因此,通常需要重写这些方法,以使它们更适合特定的子类。

此部分的主要焦点是Object类及其提供的功能,尤其是toString()方法的默认行为和如何重写它。这为开发人员提供了一个工具,使他们能够更好地控制和描述他们创建的任何对象的字符串表示形式。

Object类总结:


重点:

  1. 超类的概念: Java中的所有类都直接或间接地继承自Object类,使其成为Java类层次结构的根类。

  2. 常用方法:

    • equals(Object obj): 通常重写以提供对象相等性的逻辑判断。
    • hashCode(): 通常与equals()一起重写以维持两者之间的协定。
    • toString(): 为对象提供一个字符串表示,经常需要重写以提供更有意义的描述。

难点:

  1. equals()与==的区别: 初学者可能会混淆这两者。==检查对象的身份(即内存地址),而equals()方法用于检查对象的内容是否相等(需要正确地重写)。

  2. hashCode()与equals()的协定: 当重写equals()时,通常需要重写hashCode()以确保相等的对象返回相同的哈希码。

  3. toString()的默认行为: 默认情况下,它返回的是对象的类名,后跟其哈希码的无符号十六进制表示。初学者可能期望它返回更有意义的内容。


易错点:

  1. 没有重写equals(): 当对象的内容相等时,如果没有正确地重写equals(),则使用默认的Object类方法可能会返回false

  2. 重写equals()但忘记重写hashCode(): 这会违反equals()hashCode()之间的协定,可能导致对象在集合中的不正确行为。

  3. 误用toString(): 仅依赖于默认的toString()方法而不是提供有意义的重写,可能导致调试和日志记录中的信息不足。

  4. 混淆Object类的方法与原始数据类型的操作: 例如,使用equals()方法比较原始数据类型(如intchar)可能会导致编译错误。


总的来说,理解和正确使用Object类的方法对于Java编程至关重要。正确地重写这些方法,特别是equals()hashCode(),可以确保对象在Java程序中的正确行为和互操作性。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/112058.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2023年【熔化焊接与热切割】报名考试及熔化焊接与热切割找解析

题库来源:安全生产模拟考试一点通公众号小程序 熔化焊接与热切割报名考试根据新熔化焊接与热切割考试大纲要求,安全生产模拟考试一点通将熔化焊接与热切割模拟考试试题进行汇编,组成一套熔化焊接与热切割全真模拟考试试题,学员可…

MacOS安装git

文章目录 通过Xcode Command Lines Tool安装(推荐)终端直接运行git命令根据流程安装先安装Command Lines Tool后再安装git 官网下载二进制文件进行安装官方国外源下载二进制文件(不推荐)国内镜像下载二进制文件(推荐)安装git 通过Xcode Command Lines Tool安装(推荐) 简单来讲C…

MySQL基础教程下

MySQL 约束 约束是作用于表中字段上的规则,用于限制存储在表中的数据。 目的:保证数据库中数据的正确、有效性和完整性。 约束描述关键字非空不能为nullnot null唯一约束唯一unique主键非空唯一primary key默认默认值default检查约束满足一个条件chec…

图像特征Vol.1:计算机视觉特征度量|第二弹:【统计区域度量】

目录 一、前言二、统计区域度量2.1:图像矩特征2.1.1:原始矩/几何矩2.1.2:中心距2.1.3:归一化的中心矩2.1.4:不变矩——Hu矩2.1.5:OpenCv实现矩特征及其应用 2.2:点度量特征2.3:全局直…

【双十一预售】玩得越来越大了...

双十一又又又到了 剁手带来的快乐终究是短暂的 让自己变得更优秀才是长远的快乐 当今大环境 工作难找,钱难赚 只有不断学习与成长 方能应对未来的各种不确定性 知了堂双十一预售 0.11元畅享三大权益 助你快速实现自我提升 突破成长瓶颈 https://appyqk1x…

英飞凌TC3xx-Overlay

目录 1.数据访问重定向 2.寄存器说明 3.Overlay功能配置 3.1 确认用于重定向的CPU 3.2 配置重定向Block大小 3.3 配置目标地址和重定向地址 4.结果验证 5.小结 今天说要开个专栏讲讲XCP标定,但在将标定之前,先把英飞凌专门为标定功能设计overlay…

美国白宫发布总统令:鼓励AI以安全、可靠的方式发展

美国华盛顿时间10月30日,美国白宫官网发布了,关于发展安全、可靠和值得信赖的AI(人工智能)的拜登总统行政令。 白宫表示,该行政令为AI安全和保障制定了新标准,保护了用户的数据隐私,促进公平和…

垃圾回收GC

为什么要有垃圾回收? JVM之所以要有垃圾回收,是因为它能够自动管理内存,避免内存泄漏和内存溢出的问题,垃圾回收机制会自动检测和清理不再使用的对象,释放内存空间,使得开发者不需要手动管理内存,降低了开发难度和错误风险,同时,垃圾回收还可以优化内存分配,提高程序性能和响…

股神巴菲特靠押注加密获巨额利润?比特币成不确定时代的投资选择!

股神巴菲特(Warren Buffett)以前曾将比特币描述为“老鼠药”,表达了对加密货币发展的悲观看法。然而他却通过持有一家对比特币友好的银行的股票,获得了巨额利润。 据悉,伯克希尔哈撒韦公司在2021年6月向Nu Holdings投资了5亿美元,…

图像特征Vol.1:计算机视觉特征度量|第一弹:【纹理区域特征】

目录 一、前言二、纹理区域度量2.1:边缘特征度量2.2:互相关和自相关特征2.3:频谱方法—傅里叶谱2.4:灰度共生矩阵(GLCM)2.5:Laws纹理特征2.6:局部二值模式(LBP) 一、前言 &#x1f…

Techlink TL24G10 网络变压器 10G 基座单端口变压器

功能特征: 1、符合IEEE 802.3标准。 2、符合RoHS。 3、工作温度范围:0C至70C。 4、储存温度范围:-20C至125C。 封装:SOP24

测试从外包到自研再到大厂,这5年鬼知道我是怎么过来的

18岁那年我背井离乡来到从来没有来过的郑州。在一所普通的二本院校里学网络工程。 很明显,在大学以前只会用电脑开关机打LOL的我恍然间只觉得自己来到了人间天堂,没有人管,也没有任何烦恼无忧无虑的过了三年大学生涯。 直到秋招的开始&…

DIY相机(一)libcamera库

相机选型 DIY相机首先是要确定使用的相机型号。兼容树莓派,画质好一些的,目前主要有两款:一是Raspberry Pi Camera Module 3,二是Raspberry Pi HQ Camera。 下图是Raspberry Pi Camera Module 3的相关特性。支持自动对焦和HDR等…

现在软文发布平台都有哪些?如何在正规媒体发稿?

近年来,随着广告行业竞争愈加激烈,越来越多的企业开始注重软文宣传。软文推广平台是企业在网络上发布软文、传播信息和推广产品的重要工具。 媒介易软文平台介绍更好的品牌宣传和市场推广:软文推广发稿有哪些平台, 软文发稿好方法?软文不仅能…

【MySql】10- 实践篇(八)

文章目录 1. 用动态的观点看加锁1.1 不等号条件里的等值查询1.2 等值查询的过程1.3 怎么看死锁?1.4 怎么看锁等待?1.5 update 的例子 2. 误删数据后怎么办?2.1 删除行2.2 误删库/表2.3 延迟复制备库2.4 预防误删库 / 表的方法2.4.1 账号分离2.4.2 制定操…

集合体系结构 Collection遍历方式 迭代器遍历 增强for遍历 增强for细节 Lambda表达式遍历

目录 集合体系结构Collection遍历方式迭代器遍历总结 增强for遍历增强for细节 Lambda表达式遍历总结 集合体系结构 list系列集合:添加的元素式有序,可重复,有索引的 这里的有序式存取的格式式有序的,怎么存入怎么取出 set系列集合:添加的元素式无序,不重复,无索引 不重复:表示集…

c# .net6 在线条码打印基于

条码打印基于:BarTender、ORM EF架构 UI展示: 主页代码: using NPOI.OpenXmlFormats.Spreadsheet; using ServerSide.Models; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawi…

web:[GYCTF2020]Blacklist

题目 点开靶机,页面显示为 查看源码 没有其他线索 先提交1试一下 猜测是sql注入,先测试 同时注意到url 提交为3-1,发现页面回显为空白 可以判断为字符型注入 输入select,看是否存在回显 回显了黑名单限制的关键字 但是发现没有…

用rust写web服务器笔记(11/1)

文章目录 一、创建一个具有监听链接功能web服务器二、读取请求内容三、编写web服务器返回网页(编写响应)四、编写web服务器有条件的返回网页五、编写多线程的web服务器六、用线程池实现web服务器七、实现线程池清除的web服务器八、读取文件 rust官网文档地址:https:…

QMI8658A_QMC5883L(9轴)-EVB 评估板——索引博文

0.前言 【初见姿态传感器】 在做一个4轴飞行器的时候了解到有这样一个可以控制飞行器姿态的传感器,而后在哔哩哔哩看到利用姿态传感做很多很好玩的作品。目前在自己的本职工作中广泛会用姿态传感器IMU的应用。 1.博文索引 【基础内容】 【QMI8658 - 姿态传感器学习…