Object 类位于 java.lang 包中,是一切 Java 类的先人,Java 中的每一个类都由它扩大而来。
定义Java类时假如没有显现的指明父类,那末就默许继续了 Object 类。比方:
public class Demo{ // ... }
实际上是下面代码的简写情势:
public class Demo extends Object{ // ... }
在Java中,只需基础范例不是对象,比方数值、字符和布尔型的值都不是对象,一切的数组范例,不管是对象数组照样基础范例数组都是继续自 Object 类。
Object 类定义了一些有效的要领,由因而根类,这些要领在其他类中都存在,平常是举行了重载或掩盖,完成了各自的详细功用
equals() 要领
Object 类中的 equals() 要领用来检测一个对象是不是等价于别的一个对象,语法为:
public boolean equals(Object obj)
比方:
obj1.equals(obj2);
在Java中,数据等价的基础寄义是指两个数据的值相称。在经由过程 equals() 和“==”举行比较的时刻,援用范例数据比较的是援用,即内存地址,基础数据范例比较的是值。
注重:
equals()要领只能比较援用范例,“==”能够比较援用范例及基础范例。
当用 equals() 要领举行比较时,对类 File、String、Date 及包装类来讲,是比较范例及内容而不斟酌援用的是不是是同一个实例。
用“==”举行比较时,标记双方的数据范例必需一致(可自动转换的数据范例除外),不然编译失足,而用 equals 要领比较的两个数据只需都是援用范例即可。
hashCode() 要领
散列码(hashCode)是根据肯定的算法由对象取得的一个数值,散列码没有规律。假如 x 和 y 是差别的对象,x.hashCode() 与 y.hashCode() 基础上不会雷同。
hashCode() 要领主要用来在鸠合中完成疾速查找等操纵,也能够用于对象的比较。
在 Java 中,对 hashCode 的划定以下:
在同一个应用程序实行时期,对同一个对象挪用 hashCode(),必需返回雷同的整数效果——条件是 equals() 所比较的信息都未曾被改动过。至于同一个应用程序在差别实行期所得的挪用效果,无需一致。
假如两个对象被 equals() 要领视为相称,那末对这两个对象挪用 hashCode() 必需取得雷同的整数效果。
假如两个对象被 equals() 要领视为不相称,那末对这两个对象挪用 hashCode() 没必要发生差别的整数效果。但是程序员应当意想到,对差别对象发生差别的整数效果,有能够提拔hashTable(后面会学到,鸠合框架中的一个类)的效力。
简朴地说:假如两个对象雷同,那末它们的 hashCode 值肯定要雷同;假如两个对象的 hashCode 值雷同,它们并不肯定雷同。在 Java 范例内里划定,平常是掩盖 equals() 要领应当连带掩盖 hashCode() 要领。
toString() 要领
toString() 要领是 Object 类中定义的另一个主要要领,是对象的字符串表现情势,语法为:
public String toString()
返回值是 String 范例,用于形貌当前对象的有关信息。Object 类中完成的 toString() 要领是返回当前对象的范例和内存地址信息,但在一些子类(如 String、Date 等)中举行了 重写,也能够根据须要在用户自定义范例中重写 toString() 要领,以返回更实用的信息。
除显式挪用对象的 toString() 要领外,在举行 String 与别的范例数据的衔接操纵时,会自动挪用 toString() 要领。
以上几种要领,在Java中是常常用到的,这里仅作简朴引见,让人人对Object类和其他类有所相识,细致申明请参考 Java API 文档。
以上就是Java中Object类的细致引见的细致内容,更多请关注ki4网别的相干文章!