Java-Object類總結——面向對象(高級篇)

基本作用

  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	
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章