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认证的独…

学生成绩这样分发

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

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

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

OpenSSL生成CA证书

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

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的效果…

数据可视化篇——pyecharts模块

在之前的文章中我们已经介绍过爬虫采集到的数据用途之一就是用作可视化报表&#xff0c;而pyecharts作为Python中可视化工具的一大神器必然就受到广大程序员的喜爱。 一、什么是Echarts&#xff1f; ECharts 官方网站 : https://echarts.apache.org/zh/index.html ECharts 是…

Python的错误和异常处理

一、错误和异常 编程中出现的错误大致可以分为两类&#xff1a;错误和异常。 (一)错误 错误又可以分为两类&#xff1a;语法错误和逻辑错误。 1. 语法错误 语法错误又称解析错误&#xff0c;它是指在编写程序时&#xff0c;程序的语法不符合Python语言的规范&#xff0c;导致…

广告行业中那些趣事系列65:使用chatgpt编写基金定投程序

导读&#xff1a;本文是“数据拾光者”专栏的第六十五篇文章&#xff0c;这个系列将介绍在广告行业中自然语言处理和推荐系统实践。本篇介绍了prompt生成器和使用chatgpt来编写一个基金定投程序&#xff0c;对于希望使用chatgpt提升工作效率&#xff0c;尤其是对投资基金感兴趣…

【微服务 Spring Cloud Alibaba】- Nacos 服务注册中心

目录 1. 什么是注册中心&#xff1f; 1.2 注册中心的作用 2. SpringBoot 整合 Nacos 实现服务注册中心 2.1 将服务注册到 Nacos 2.2 实现消费者 3. 服务列表各个参数的含义、作用以及应用场景 1. 什么是注册中心&#xff1f; 注册中心是微服务架构中的一个重要组件&…

数模竞赛那么累,究竟能给我带来什么?

国赛官网上有这么一句话&#xff1a;一次参赛&#xff0c;终生受益。 学生时代&#xff0c;我对这句话没啥感触。 因为刚开始学数模时感觉很没头绪&#xff0c;书也看不懂&#xff0c;论文也看不懂&#xff0c;看啥都看不懂。 比赛时题目看不懂&#xff0c;答案搜不到&#xf…

数据资产入表来了!企业如何构建数据资产

背景 2023年8月21日&#xff0c;财政部会计司公布《企业数据资源相关会计处理暂行规定》&#xff08;财会〔2023〕11号&#xff09;&#xff08;以下简称“《暂定规定》”&#xff09;&#xff0c;“数据资产入表”正式来了&#xff0c;为企业构建数据资产体系吹响号角&#x…

【接口测试】目前市面上流行的接口大多有哪几种协议的接口?

首先&#xff0c;关于协议这个词&#xff0c;你要清楚。 接口测试它是基于什么进行测试的&#xff0c;接口测试是什么测试类型&#xff0c;其实有有时候问到一个问题&#xff0c;关联性很强。很多关联性的问题你都可以去考虑。 首先接口测试一个功能黑盒测试&后端&#x…