1. 程式人生 > >Java基礎(二十二)

Java基礎(二十二)

Object類

1:什麼是Object類

Object類的主要特點是可以解決引數的統一問題,也就是說使用Object類可以接收所有的資料型別。

在Java之中只有一個類是不存在有繼承關係的,那麼這個類就是Object類,也就是說所有的預設情況下都是Object子類(以下兩種定義方式相同):

class Person { } 等價於 : class Person extends Object { }

在Object類設計的時候考慮到了所有繼承的問題,所以該類提供有無參構造方法,這樣所有的類在定義時即便不知道Object的存在也不會出現構造方法呼叫失敗的語法錯誤。

2:Object是所有類的父類

既然Object是所有類的父類,那麼這種情況下就可以使用Object類接收所有的子類物件。(程式碼如下)

//觀察Object類接收所有子類物件
public class JavaDemo {
	public static void main(String args[]) {
		Object obj = new Person() ;	// 向上轉型
		if (obj instanceof Person) {
			Person per = (Person) obj ;
			System.out.println("Person物件向下轉型執行完畢。") ;
		}
	}
}

如果一個程式的方法要求可以接收所有類物件的時候就可以利用Object實現處理;

在Java設計的過程之中對於所有的引用資料型別實際上都可以使用Object類進行接收,包括陣列也可以(程式碼如下)。

public class JavaDemo {
	public static void main(String args[]) {
		Object obj = new int [] {1,2,3} ;	// 向上轉型
		if (obj instanceof int[]) { // 是否為整型陣列
			int data [] = (int []) obj ;  // 向下轉型
			for (int temp : data) {
				System.out.print(temp + "、") ;
			}
		}
	}
} 
//Object是一個萬能的資料型別,它更加適合於程式的標準設計。

3:獲取物件設計

Object雖然是一個類,但是這個類本身也提供有一些方法,例如:toString();該方法可以獲取一個物件的所有資訊,public String toString().

//觀察預設的構造方法
class Person { }
public class Demo{
	public static void main(String args[]){
		Person per = new Person();
		System.out.println(per);
		System.out.println(per.toString());//Object類繼承而來的方法。
	}
}
//結果:
開始面試[email protected]
開始面試[email protected]