Java之this關鍵字
阿新 • • 發佈:2018-12-11
this是Java的一個關鍵字,表示某個物件。this可以出現在例項方法和構造方法中,但不可以出現在類方法中。
一:在構造方法中使用this
this關鍵字出現在類的構造方法中時,代表使用該構造方法所建立的物件。
public class This_keyword { int hand,mouse; String name; This_keyword(String s){ name = s; this.init(); } void init(){ mouse = 1; hand = 2; System.out.println(name + "有" + hand + "隻手"); } public static void main(String[] args) { This_keyword people = new This_keyword("Andy"); //建立people時,構造方法中的this就是指物件people } }
其中在構造方法people(String s)中,this是可以省略的,即"this.init()"可以改成"init()"。
二:在例項方法中使用this
例項方法只能通過物件來呼叫(即你建立了一個物件,呼叫一個例項方法 物件名.例項方法名() ),不能用類名來呼叫(也就是不能 類名.方法名 這樣使用)。當this關鍵字出現在例項方法中時,this就代表正在呼叫該方法的當前物件。例如:
public class This_keyword { static int hand; String name; void init(String s){ this.name = s; This_keyword.hand= 2; System.out.println(name + "有" + hand + "隻手"); } public static void main(String[] args) { This_keyword people = new This_keyword(); people.init("Andy"); } }
通常情況下,是可以省略例項成員變數名字前面的“this.”以及static變數前面的“類名.”的。
But,當例項成員變數的名字與區域性變數的名字相同時,成員變數名字前面的“this.”或“類名.”就不可以省略。例如:
public class This_keyword { static int hand; String name; void init(String s){ this.name = s; this.hand= 2; int hand = 8; System.out.println(name + "有" + this.hand + "隻手"); System.out.println(name + "有" + hand + "隻手"); //加this.與不加this.的結果是不一樣的! } public static void main(String[] args) { This_keyword people = new This_keyword(); people.init("Andy"); } }