天天看點

萬類之祖-Object簡介 | 帶你學《Java面向對象程式設計》之五十

上一篇:領略多态的魅力-對象向下轉型 | 帶你學《Java面向對象程式設計》之四十九

【本節目标】

通過閱讀本節内容,你将認識到Object類在多态性中扮演的重要角色,并能夠通過覆寫toString()方法實作擷取對象資訊的功能。

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

Object類簡介

在Java之中隻有一個類是不存在有繼承關系的,那麼這個類就是Object,也就是說所有的類預設情況下都是Object子類。以下兩種類的定義效果完全相同:

class Person {}                 //一個類

class Person extends Object {}           

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

那麼既然Object類是所有類的父類,那麼這種情況下就可以使用Object類接收所有的子類對象。

範例:觀察Object類接收所有子類對象

class Person {}
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類進行接收,包括數組也可以。

範例:使用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.println(temp + “、”) ;    //執行結果:1、2、3、
           }
        }
    }
}           

Object還一個萬能資料類型,它更加适合于進行程式的标準設計。

擷取對象資訊:toString()

Object雖然是一個類,但是這個類本身也是提供有一些處理方法的。在Object類之中提供有一個“toString()”的方法,該方法可以擷取一個對象的完整資訊:public String toString()。

範例:觀察預設的toString()使用

class Person {}
public class JavaDemo{
    public static void main(String args[]) {
        Person per  = new Person() ;
        System.out.println(per) ;     
        System.out.println(per.toString()) ;  //Object類繼承而來
    }
}           

可以發現在之前進行對象直接輸出的時候所調用的方法就是toString()方法,是以這個方法調用與不調用的效果是一樣的。是以在以後的開發之中對象資訊的擷取可以直接覆寫此方法。

範例:覆寫toString()方法

class Person {
    private String name ;
    private int age ;
    public Person (String name , int age ) {
        this.name = name ;
        this.age = age ;
    }
   @Override    
    public String toString() {
        return “姓名:” + this.name + “、年齡:” + this.age ;
    }
}
public class JavaDemo{
    public static void main(String args[]) {
        Person per  = new Person(“張三” , 20) ;
        System.out.println(per) ;
    }
}           

以後在編寫簡單Java類的過程之中隻需要覆寫toString()方法即可。

想學習更多的Java的課程嗎?從小白到大神,從入門到精通,更多精彩不容錯過!免費為您提供更多的學習資源。

本内容視訊來源于

阿裡雲大學 下一篇:比較無處不在-靈活覆寫equals方法 | 帶你學《Java面向對象程式設計》之五十一 更多Java面向對象程式設計文章檢視此處