1. 程式人生 > >【JAVA】this關鍵字

【JAVA】this關鍵字

執行 回顧 了解 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 = new
Test2(); 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關鍵字