1. 程式人生 > >this關鍵字與構造器轉發

this關鍵字與構造器轉發

this關鍵字 構造器轉發

構造器重載:

構造器猶如方法一樣可以進行重載,只要參數類型和參數個數不一樣就可以。構造器重載就好像提供了多個選擇,可以選擇無參數構造器可以選擇int類型參數構造器、可以選擇String類型構造器等等,一個程序往往會有多種情況,構造器重載則可以選擇不同的初始化方式。例如:

技術分享

如圖new不同參數的對象,每個對象的構造方式就不一樣


this關鍵字:

this表示當前對象,this關鍵字只能寫在實例成員內,實例方法和實例屬性可以用this關鍵字。例如this.name表示的是當前對象的name屬性。例如:

技術分享


java裏不同的區域重名是可以的,大括號內表示一個區域,在大括號以外重名是允許的,java使用變量名稱是就近原則。在參數、變量與對象屬性重名的情況下就需要使用this來表示,不然會報錯,因為編譯器不知道你使用的是哪個,所以需要用this指出。




構造器轉發:

使用this可以進行構造器轉發,但是this只能寫在構造器的第一行代碼上,寫在其他代碼下是會報錯的。

技術分享


main方法裏new的是無參數構造器,自然會先執行無參數構造器裏的代碼,然後遇到構造器轉發再去執行對應的構造器裏的代碼,執行完之後再返回上一個構造器執行this下面的代碼。this的括號內寫的值會轉發到具有對應參數類型的構造器,然後這個構造器會先執行,執行完畢後再到原本的構造器執行,有點類似於方法的遞歸。

技術分享


本文出自 “12831981” 博客,請務必保留此出處http://12841981.blog.51cto.com/12831981/1974038

this關鍵字與構造器轉發