Java之Object类
一、介绍
Object类是Java中所有类的超类(位置:java.lang.Object;)。每个类都是继承自Object,可以使用Object类型的变量引用任何类型的把对象,如:
|
|
在Java中,只有基本类型的值不是对象,其他全部是Object类的类型。 ## 二、Object类常用方法
equals方法:
Object类中的equals方法用于检测一个对象是否等于另一对象,是根据两个对象的引用判断的。如果这两个对象具有相同的引用,那么这两个对象一定是相等的。
equals方法特性:
1.自反性:对于任何非空引用x,x.equals(x)返回true。
2.对称性:对于任何引用x和y,如果x.equals(y)返回true,则y.equals(x)返回true。
3.传递性:对于任何引用x、y和z,如果x.equals(y)返回true,y.equals(z)返回true,那么x.equals(z)应该返回true。
4.一致性:如果x和y引用的对象没有发生变化,那么反复调用x.equals(y)应该返回同样的结果。
5.对于任意非空引用x,x.equals(null)应该返回false。
hashCode方法:
散列码是由对象导出一个整型值。散列码没有规律,每个对象都有一个默认的散列码,其值为对象的存储地址。例如String类使用如下方法计算散列码:
|
|
如果重新定义equals方法,必须重新定义hashCode方法。equals方法于hashCode方法的一致性,如果x.equals(y)返回true,那么x.hashCode()就必须等于y.hashCode()。
Object类中定义的hashCode方法:int hashCode()。返回队对象的散列码,可以是正负数。
toString方法:
返回表示对象的字符串。
|
|
|
|
因为PrintStream类没有覆盖toString方法,所以输出的是类+地址形式。
getClass方法:
返回包含对象信息的类对象。Object类定义:Class getClass()。
clone方法:
创建一个对象的副本。Java运行时系统为新实例分配存储空间,并将当前对象复制到这块存储区域中。Object类定义:Object clone()。
三、Class类
位置:java.lang.Class;
getName方法:
返回给类的名字。Class类中定义:String getName()。
getSuperClass方法:
以Class对象返回该类的超类信息。Class类中定义:Class getSuperClass()。
From:JAVA核心技术|卷一|第五章|二小节