1. 程式人生 > >Java學習 - 引出this關鍵字

Java學習 - 引出this關鍵字

比較 屬性註入 setter images 不能 技術分享 use 實例方法 局部變量

需求:定義一個User類,提供name,age字段,以及相應getter/setter方法。
並創建對象,設置name和age數據,在打印對象的name,age。


什麽是this:
表示當前對象,什麽又是當前對象
this只要存在於兩個位置:
構造器中:就表示當前創建的對象
方法中:哪一個對象調用this所在的方法,那麽此時this就表示哪一個對象;


使用this:
1:解決成員變量和參數(局部變量)之間的二義性,必須使用;
2:同類中實例方法間互調(此時可以省略this,但是不建議省略)。
3:將this作為參數傳遞給另一個方法;
4:將this作為方法的返回值(鏈式方法編程);
5:構造器重載的互調,this(參數)必須寫在構造方法第一行;

6:static不能和this一起使用;
當字節碼被加載近JVM,static成員已經存在了,
但是此時對象還沒有創建,沒有對象,就沒有this。


創建對象並對象設置初始值有兩個方式:
方式1:先通過無參數構造器創建出一個對象,再通過對象調用相應的setter方法,
方式2:直接調用參數的構造器,創建出來的對象,就有了初始值。
----------------------------------------------------------------------------

通過構造器和通過setter方法都可以完成相同的功能
給對象設置數據:
1:setter註入(屬性註入)
2:構造註入

------------------------------------------------------------------------------

如何選擇:
1:如何存在帶參數的構造器,方式2是比較簡潔的。
2:如果在構建對象的時候需要初始化多個數據,如果使用方式2,那麽構造器得提供N個參數,參數過大,
不直觀,此時方式1,簡單明了。
3:有時候需要根據數據來構建對象,此時優先選用構造器方式。

技術分享

Java學習 - 引出this關鍵字