基本作用
Object類存儲在java.lang包中。Object類是Java中所有類的父類,即一個類只要沒有明顯地繼承一個類,則肯定是Object類的子類。
如下兩行代碼表示的含義是一樣的
class Person extends Object{}
class Person
Object類的主要方法如下表:
序號 | 方法名稱 | 類型 | 描述 |
---|---|---|---|
1 | public Object() | 構造 | 構造方法 |
2 | public boolean equals(Object obj) | 普通 | 對象比較 |
3 | public int hashCode() | 普通 | 取得Hash碼 |
4 | public String toString() | 普通 | 對象打印時調用 |
主要方法
toString()方法
當程序隨機輸出一些地址信息時,實例化對象輸出是一定會調用Object類中的toString()方法打印內容,所以加不加toString()方法最終的輸出結果是一樣的。如下代碼所示:
class Demo{
//定義Demo類,實際上繼承了Object類
}
public class ObjectDemo01 {
public static void main(String[] args) {
Demo d = new Demo();
System.out.println("不加toString()輸出:" + d);
System.out.println("加toString()輸出:" + d.toString());
}
}
運行結果:
不加toString()輸出:Demo@7852e922
加toString()輸出:Demo@7852e922
但有時可以利用toString()方法的這一特性取得一些對象的信息,如下代碼所示:
class Person{
private String name;
private int age;
public Person(String name,int age) {
this.name = name;
this.age = age;
}
public String toString() {
return "姓名:" + this.name + ";年齡:" + this.age;
}
}
public class ObjectDemo02 {
public static void main(String[] args) {
Person per = new Person("zhangsan",30);
System.out.println(per.toString());
}
}
運行結果:
姓名:zhangsan;年齡:30
接收任意引用類型的對象
既然Object類是所有對象的父類,那麼所有對象都可以向Object轉換,其中包含了數組和接口。雖然接口不能繼承一個類,但依然是Object類的子類,接口是引用數據類型,故可進行向下轉型。數組也是引用數據類型,當然,也可以使用Object接收一個數組。
使用Object接收接口的基本操作方法:
interface A{
public String get();
}
class B implements A{
public String get() {
return "Nice to meet you!";
}
}
public class ObjectDemo04 {
public static void main(String[] args) {
A a = new B(); //爲接口實例化
Object o = a; //對象向上轉型
A x = (A)o; //對象向下轉型
System.out.println(x.get());
}
}
運行結果:
Nice to meet you!
使用Object接收數組的基本操作方法:
public class ObjectDemo05 {
public static void main(String[] args) {
int a[] = {578,614,529}; //定義數組
Object o = a; //使用Object接收數組
print(o); //傳遞數組引用
}
//在使用print()方法輸出時先通過instanceof判斷類型是否是一個整型數組,然後再進行輸出操作
public static void print(Object o) { //接收一個對象
if(o instanceof int[]) { //判斷對象類型
int x[] = (int[])o; //向下轉型
for(int i = 0; i < x.length;i ++) //循環輸出
System.out.println(x[i] + "\t");
}
}
}
運行結果:
578
614
529