【JAVA】this關鍵字
阿新 • • 發佈:2018-12-22
執行 回顧 了解 uem 普通 hello 成員 -- dem
前言
最近在看多線程時,在線程調用getName()方法時發現this關鍵字,這半年來,都沒怎麽寫過java代碼了,入坑了外包,面試java,進公司後做了運維維護,天天在熟悉linux命令,好處就是從linux小白變成了linux小灰,壞處就是本來對java就不是太清楚的自己,幾乎忘記了java,現在就來回顧下this關鍵字。先來看一段代碼。
public class Demo1 { String s = "Hello"; public Demo1(String s) { System.out.println("the first s : " + s); System.out.println("the second s : " + this.s); this.s = s; System.out.println("the third s : " + this.s); } public static void main(String[] args) { Demo1 d = new Demo1("HelloWorld!"); System.out.println("the fourth s : " + d.s); } }
自己可以執行以下,如果跟預想不一樣的話,就繼續往下看吧。
1.this可以用來修飾成員變量
以前言中的代碼為例,String s = "Hello"是成員變量,則this.s是指"Hello",而s是指局部方法,即public Demo1(String s) 的s,所以
the first s: HelloWorld the second s : Hello
this.s是指 將public Demo1(String s) 的s的值賦予成員變量的s,所以String s = "Hello"的值從"Hello"變成"HelloWorld"
the third s : HelloWorld the fourth s : HelloWorld
2.this可以用來調用普通方法
public class Test2{ public static void main(String[] args) { Test2 t2 = newTest2(); t2.test(); } public void test() { this.getTest(); } public void getTest() { System.out.println("test"); } }
3.this調用構造方法
public class Test3 { public String name; public int gender; //1代表男 2代表女 public Test3() { this("未知", 1); } public Test3(String name, int gender) { this.name = name; this.gender = gender; } public static void main(String[] args) { Test3 t3 = new Test3(); System.out.println(t3.name); System.out.println(t3.gender); } }
4.this調用當前對象
這個不是太常用,了解下就好
class BlueMoon { public void print() { //哪個對象調用了print()方法,this就自動與此對象指向同一塊內存地址 System.out.println("this=" + this);//this 就是當前調用對象 } } public class Test4 { public static void main(String[] args) { BlueMoon bm = new BlueMoon(); BlueMoon bm2 = new BlueMoon(); System.out.println("bm=" + bm); bm.print(); System.out.println("---------------------"); System.out.println("bm2=" + bm2); bm.print(); } }
希望大家多多交流
【JAVA】this關鍵字