1. 程式人生 > >Android自定義super以及this的用法問題

Android自定義super以及this的用法問題

Android自定義開發當中的繼承view的時候,我們一般會使用3個建構函式

因為四個引數的建構函式是API21之後才出來的,所以我們暫時都是使用的都是這3種。在我自己學習自定義的過程當中,就在這個建構函式的地方出了問題。將super和this的用法弄錯了。所以自己在這裡記錄下來,希望為大家提供一點幫助。

super:必須寫在子類構造方法的第一排,呼叫基類的構造方法,還能呼叫基類中的方法。

this:this表示的是呼叫本類當中的其他的建構函式。

在自定義的時候,我使用的是AS編譯器,它自動給我生成的的super();方法,但是我是在第三個建構函式中初始化的資料,在執行的過程中,第三個建構函式是沒有執行到的。所以,導致我會一直報錯。然後我將super改成了this,因為之前就說到了,this是用於呼叫本類當中的其他的構造方法,我在1 2 兩個建構函式中使用this呼叫的其他的建構函式,所以程式能正常執行。

tip:在java程式碼中new 物件的時候一般使用的是第一個建構函式,在xml中使用的是前兩個建構函式。所以,如果你的資料是在第三個建構函式中定義的,你一定要在前兩個建構函式中使用this來將你的第三個函式引進去,以免發生不必要的錯誤。

這就是我遇到的問題,希望對大家能用一點作用。

this()和super()都指的是物件,所以,均不可以在static環境中使用。包括:static變數,static方法,static語句塊