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 {// ...@Overridepublic 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程序中的正确行为和互操作性。

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Microsoft Edge不能工作了,可能原因不少,那么如何修复呢

Microsoft Edge打不开或不能加载网页是用户在Windows 10、Android、Mac和iOS设备上的网络浏览器上遇到的许多错误之一。其他Microsoft Edge问题可能包括浏览器窗口和选项卡冻结、网站崩溃、互联网连接错误消息以及丢失Microsoft Edge书签、收藏夹、密码和收藏。 Microsoft Edg…

金蝶云星空自定义校验器和使用

文章目录 金蝶云星空自定义校验器和使用 金蝶云星空自定义校验器和使用 1、创建类,并继承抽象接口 using Kingdee.BOS.Core; using Kingdee.BOS.Core.Validation; using System;namespace mm.K3.SCM.App.Service.PlugIn.SC.Validator {public class AfterOrderChe…

跨境电商大作战:2023黑色星期五准备指南

黑色星期五,作为全球购物狂欢的象征,已经成为了电商业务的一年一度的重要节点。尤其对于跨境电商来说,这一天意味着巨大的商机和挑战。为了在这个竞争激烈的时刻脱颖而出,跨境电商必须做好充分的准备。Nox聚星在这里给大家分享几个…

最新ai系统ChatGPT程序源码+详细搭建教程+以图生图+Dall-E2绘画+支持GPT4+Midjourney绘画

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…

Q-CTRL首次在量子市场获得ISO 27001国际标准认证

​(图片来源:网络) 国际公认的ISO 27001标准概述了信息安全管理系统(ISMS)的实施,并表现了管理风险的能力,包括与客户数据安全相关的风险。总部位于悉尼的Q-CTRL是第一家获得ISO 27001认证的独…

Vue 3 中的 Composition API

✨理解 Vue 3 中的 Composition API 🎃 Vue 3 引入了全新的 Composition API,相较于传统的 Options API,它具备许多优势和适用场景。下面将介绍 Composition API 的优势和使用场景,并为你带来更好的开发体验。 🎁 Co…

Linux 启用本地ISO作为软件源

环境:sle12sp5 (open SUSE) 1、禁用现有的源 查看源:sle12sp5 zypper lr -u ➜ sle12sp5 zypper lr -u Repository priorities are without effect. All enabled repositories share the same prior…

学生成绩这样分发

作为一名老师,经常被问到这样的问题:“老师,我的成绩什么时候发?”、“老师,我的成绩出来了吗?”等等。倍感烦恼,需要花费时间来回答这些问题,而且有时候学生还会因为成绩不佳而抱怨…

C++对象的内存分布和虚函数表

Linux C/C 开发(后端/音视频/游戏/嵌入式/高性能网络/存储/基础架构/安全) c中一个类中无非有四种成员:静态数据成员和非静态数据成员,静态函数和非静态函数。 1.非静态数据成员被放在每一个对象体内作为对象专有的数据成员。 2.静态数据成员被提取出来…

电力兆瓦-小记

电力产能的换算单位通常使用以下方式: 1 兆瓦(MW)等于 1,000 千瓦(kW)。 1 千瓦(kW)等于 1,000 瓦特(W)。 1 兆瓦(MW)等于 1,000,000 瓦特&#…

OpenSSL生成CA证书

基本概念 证书类别 根证书:生成服务端证书,客户端证书的基础。自签名。服务端证书:由根证书签发。配置在服务器上。客户端证书:由根证书签发。配置在浏览器、移动APP等客户端上。 认证方式 单向认证(Client鉴权Serv…

ONES插件开发的学习笔记

首先插件的功能是私有化部署的功能, 只能在私有化部署的 ONES 上能安装和使用插件。 安装最新版本 Node.js 的稳定版, 配置 ONES 的私有 npm 仓库: $ npm config set registryhttps://registry.npmjs.org/ $ npm config set ones:registryhttps://npm.partner.one…

docker安装软件

docker安装redis及其配置 docker安装redis及其配置 安装镜像 查询镜像 docker search redis拉取镜像 docker pull redis:7.2.2创建文件目录 创建目录 mkdir /home/redis/conf mkdir /home/redis/data创建配置文件 cd /home/redis/conf touch redis.conf以下链接中下载相…

electron汇总

python3自带了pip pip search已经被禁用,安装pip—— pip install pip-searchpython3.x移除了distutils 管理员权限下运行cmd,运行以下命令 // 修改pip镜像地址 pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ // 安装 Set…

jsoncpp fatal error C1083: 无法打开编译器生成的文件

使用jsoncpp库的时候,在Debug模式下正常,但是release却报错,开始以为是开发项目设置问题,于是网络搜索,发现是jsoncpp的编译选项问题。 修改生成静态库文件的工程的属性:路径为:菜单&#xff0…

用二维码搭建设备巡检系统,轻松实现扫码巡检和数字化台账

针对设备状态不透明、纸质记录效率低、故障报修不及时等设备点巡检的常见问题,可以在草料二维码上自主搭建涵盖点检、巡检、报修、维修、保养等功能的管理系统,无需安装APP,微信扫码就能查看设备档案、用表单替代纸质检查表。 譬如“台州沿海…

基于FPGA的图像差分运算及目标提取实现,包含testbench和MATLAB辅助验证程序

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 timescale 1ns / 1ps // // Company: // Engineer: // // Create Date: 2022/07/28 01:51:…

ctfshow-web入门37-52

include($c);表达式包含并运行指定文件。 使用data伪协议 ?cdata://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs/Pg PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs/Pg 是<?php system(cat flag.php);?> base64加密 源代码查看得到flag 38 多禁用了ph…

YOLO算法改进3【中阶改进篇】:添加HorNet卷积模块

论文地址:https://arxiv.org/pdf/2207.14284.pdf 源码地址:https://github.com/raoyongming/HorNet. HorNet是在Swin transformer结构的基础上,结合大核思想提出的新的网络结构模块,使用该模块,作者在ImageNet-1k数据集上做分类,分割以及检测任务都在当时达到了SOTA的效果…

货物税收问题,分段进行征税

税收问题&#xff0c;怎么把一个数按照部分进行计算呢&#xff1f;比如一个数大于10000&#xff0c;然后超过10000的部分按照5%计算&#xff0c;10000-5000的区间按照3%计算 在C中&#xff0c;你可以使用条件语句&#xff08;if-else语句&#xff09;来根据不同的条件计算税收…