Java所有的类都继承于Objec类,此类是所有Java类的父类,如果在类的声明中未使用extends关键字指定父类,则默认继承Object类,任何继承Object的类,都可以调用Object类的方法。
Object类在java.lang包中有如下几个实用的方法。
String toStirng()方法
用于返回当前对象的有关信息,返回类型为String类型。其作用是当需要对外输出对象信息时,这个对象自动调用toString()方法,通过这个方法返回一个表示对象自身信息的字符串,对象信息默认的内容是“类名称+哈希编码”。如果需要输出自己定义的类信息,则需要重写toStirng()方法,类方法的重写机制在后面的多态内容部分会讲到。
例如:
public class FruitManager {
public static void main(String[] args) {
// TODO Auto-generated method stub
//声明和创建Fruits对象apple
Fruits apple = new Fruits("80%","60%","30%");
//输出Fruits类的信息
System.out.println("Fruits类的信息" + apple.toString());
//调用appleshowFruit方法输出对象属性
apple.showFruit();
}
}案例代码见PCoreUnit1项目fruits包的Fruits类和FruitManager类。
在FruitManager类main方法中,创建apple对象后,输出apple对象的自身信息和对象属性。执行FruitManager,输出结果如下图所示:

FruitManager输出结果
boolean equals(Object obj) 方法
Object类的equals方法主要用于判断传入的对象obj与自身是否一致,即判断自身与obj是否是同一个对象。equals默认的判断方法是判断两个对象的内存地址是否一致,如果一致则返回true,否则返回false。在实际编程中,有时需要判断两个对象的内容是否相等,此时就需要重写Object类的equals方法,替换掉默认的判断方法。
例如:
public class Fruits {
//汁液含量
private String water;
//糖分含量
private String sugar;
//芳香度
private String fragrance;
Fruits(String inwater,String sugar,String fragrance)
{
this.water = inwater;
this.sugar = sugar;
this.fragrance = fragrance;
}
// 重写equal方法
@Override
public boolean equals(Object obj) {
boolean bEquals = true;
Fruits tempFruits = (Fruits)obj;
if( !this.water.equals(tempFruits.getWater()) )
bEquals = false;
if( !this.sugar.equals(tempFruits.getSugar()) )
bEquals = false;
if( !this.fragrance.equals(tempFruits.getFragrance()) )
bEquals = false;
return bEquals;
}
/**
* Function showFruit
* Description: 输出水果的 水分含量、糖分含量、芳香度
* input: 无输入参数
* return: 无返回
*/
public void showFruit()
{
System.out.println("水分含量:" + getWater());
System.out.println("糖分含量:" + getSugar());
System.out.println("芳香度:" + getFragrance());
}
public String getWater() {
return water;
}
public void setWater(String water) {
this.water = water;
}
public String getSugar() {
return sugar;
}
public void setSugar(String sugar) {
this.sugar = sugar;
}
public String getFragrance() {
return fragrance;
}
public void setFragrance(String fragrance) {
this.fragrance = fragrance;
}
}案例代码见PCoreUnit1项目fruits包的Fruits类。
Fruits类重写了Object类的equals方法,替换默认的equals方法,用于判断两个对象内容是否相等,而不是内存地址是否相等。
Object clone()方法
Object类的clone方法主要用于快速创建一个已有对象的副本,将原有对象的数据导入到新创建的对象中。
使用clone方法注意事项:
(1)为了使用clone方法,类必须实现java.lang.Cloneable接口重写protected方法clone,如果没有实现Clonebale接口会抛出CloneNotSupportedException。
(2)clone方法创建新对象后,将原对象的内容拷贝复制到新对象中。假如原对象属性包含引用类型,那么原始对象和新创建的对象都将指向相同的引用内容,这点需特别注意,因为引用类型数据的任何改变将反应到他们所引用的共同内容上,这将会产生不可预知的结果。
Object 是类层次结构的根类,每个类都使用 Object 作为超类,所有Java类都继承Object类,一般的类都需要覆盖Object中的三个方法:toString(),hashCode()和equals()方法。