1) Java 类默认继承于Object! -> 啥都是东西
继承了Object 的属性和方法
如: toString(), hashCode(), equals()
2) toString() 方法, 经常有系统默认调用, 活动当前对象的
文本描述, Object 默认返回: 全限定名@hashCode
建议覆盖为: 当前对象的文本描述
3) equals 是用来比较两个对象是否相等的方法。
区别:引用相等与对象相等
引用值相等: 使用“==”
对象的内容相等: .equals() 方法
equals 在Object 类中声明,默认的比较规则是:比较引用
建议覆盖,实现对象的比较(比较对象的状态,就是比较对象
的数据)。
* 覆盖规则:
a 自反性:对于任何非空引用值x,x.equals(x)
都应返回true。
b 对称性:对于任何非空引用值x 和y,当且仅当
y.equals(x) 返回true 时,x.equals(y)
才应返回true。
c 传递性:对于任何非空引用值x、y 和z,如果
x.equals(y) 返回true,并且y.equals(z) 返回
true,那么x.equals(z) 应返回true。
d 一致性:对于任何非空引用值x 和y,多次调用
x.equals(y) 始终返回true 或始终返回false,
前提是对象上equals 比较中所用的信息没有被修改。
4) hashCode()
A hashCode()方法要与equals 方法一同覆盖
a 当两个对象equals 比较为true 时候,这两个对象应该
具有相同的hashCode()值
b 当两个对象equals 比较为false 时候,这两个对象应该
具有不相同的hashCode()值
c hashCode() 值要稳定(一致性),一个对象创建以
后就不应该再变化
B 默认的hashCode() 值是当前堆对象地址转换的一个整数
这个整数不是内存地址。
C 一般使用对象的OID 值作为hashCode 的值。
OID 对象的唯一编号,在工程项目中一般采用数据库来
生成OID,也就是数据库中的“主键”
e 对于任何非空引用值x,x.equals(null) 都应返回
分享到:
相关推荐
【Object-C】ios苹果app开发入门object-c例子demo14个实例 一般编程问题 【实例简介】 ios苹果app开发入门,object-c,例子,demo,14个实例 初学者难得的学习实例 【实例截图】 【核心代码】 归档 ├── Air...
Object Pascal是一种高级编译语言,以严格的强类型特性著称,这意味着在Object Pascal中,数据类型会被严格检查。这种语言支持结构化编程和面向对象编程,其代码具备很好的易读性,并且编译速度快。由于支持使用多个...
在Delphi编程环境中,SuperObject是一个非常流行的JSON库,它为开发者提供了高效、灵活的JSON解析和序列化功能。在Delphi XE10.3版本中,SuperObject的兼容性和支持是至关重要的,因为JSON作为一种轻量级的数据交换...
### Object标签遮罩问题解析及解决方案 #### 一、Object标签概述 在Web开发中,`<object>` 标签是一种非常重要的元素,主要用于在HTML文档中嵌入多媒体内容,如图像、音频、视频、Java Applets、ActiveX 控件、PDF...
为了解决这些问题,开发者们引入了第三方数据库,ObjectBox便是其中的一款优秀选择。ObjectBox是一款专门为移动设备优化的关系型数据库,它以其高性能、易用性以及对对象持久化的支持而受到广泛欢迎。 ObjectBox的...
Delphi 7 JSON SuperObject 深度解析 在 Delphi 开发环境中,处理 JSON 数据是一项常见的任务。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易读易写、机器易于解析和生成的特点,被广泛...
在Java编程语言中,`Object`类是所有类的根,每个自定义类如果没有明确指定父类,都默认继承自`Object`。因此,对`Object`类的理解是每个Java开发者的基本功。本文将深入探讨`Object`类,以及其核心方法`equals()`与...
《Visual Object Net++:探索Petri网建模与仿真》 Visual Object Net++是一款专为初学者设计的模拟软件,其主要功能在于提供一个友好的环境来构建和分析Petri网模型。Petri网,全称是Place/Transition Net,是一种...
在IT行业中,JSON(JavaScript Object Notation)是一种广泛使用的轻量级数据交换格式,它易于人阅读和编写,同时也易于机器解析和生成。SuperObject是一个开源的、高性能的JSON库,专门为Delphi和FreePascal设计。...
**Delphi 7 版本 - X-SuperObject** X-SuperObject 是一个在 Delphi 开发环境中广泛使用的 JSON 库,特别适用于 Delphi 7 这样的较早版本。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其...
《LWM2M中的Object与Resource定义:深入理解物联网平台对接》 在物联网(IoT)领域, Lightweight Machine to Machine (LWM2M) 协议作为一种轻量级的通信协议,广泛应用于设备管理和服务提供。它允许远程访问和管理...
在本文中,我们将深入探讨如何使用C#编程语言与Esri的MapObject库结合,来构建一个GIS(地理信息系统)程序。MapObject是Esri公司提供的一个强大的地图开发组件,它允许开发者创建交互式地图应用,支持多种地理数据...
在网页开发过程中,我们经常会遇到各种布局问题,其中之一就是`<Object>`标签遮盖`<div>`标签的情况。`<Object>`标签在HTML中用于嵌入外部资源,如Flash、PDF或其他插件,而`<div>`标签则常用于创建页面上的容器或...
MapObject是ESRI公司开发的一款GIS(地理信息系统)组件,它为开发者提供了在应用程序中集成地图和地理数据的能力。基于MapObject的GIS程序设计主要涉及以下几个核心知识点: 1. **地图对象模型**:MapObject的核心...
《SuperObject在Delphi中的应用与详解》 在Delphi编程环境中,SuperObject是一个非常重要的JSON解析库,它以其高效、轻量级和易于使用的特性,深受开发者的喜爱。本文将深入探讨SuperObject的核心概念、使用方法...
C#实现object与byte[]互转 在C#中,实现object与byte[]互转是一种常见的需求,特别是在网络通信和数据存储中。这篇文章将详细介绍如何将object转换为byte[],并介绍相关的知识点。 序列化 序列化是将对象转换为二...
SuperObject是一个轻量级且高效的JSON库,为Delphi开发者提供了方便的接口来解析和生成JSON对象。本篇文章将深入探讨如何在Delphi中使用SuperObject库进行JSON操作。 首先,要使用SuperObject,你需要在项目中引入...
### LDAP提示Object Class Violation详解 #### 一、问题背景 在LDAP(Lightweight Directory Access Protocol,轻量目录访问协议)的使用过程中,有时会遇到一个常见的错误提示:“object class violation”。这一...
在 DELPHI 开发中,SuperObject 是一个非常流行的库,用于处理 JSON 数据。这个库提供了强大而灵活的 API,使得解析、创建和操作 JSON 对象变得轻而易举。在本文中,我们将深入探讨如何使用 SuperObject 实现 JSON ...
**标题:“ObjectBrowser10中文版”** **描述解析:** `SI Object Browser`是一款专为Oracle应用开发和数据库管理设计的图形用户界面(GUI)工具。它集成了多种功能,方便开发者和DBA进行高效的工作。通过GUI,...