首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

淺談 Java 中 this 關鍵字的三大核心用法

     編輯:Java 相關知識

1. 區分同名成員變數與參數/區域變數

public class A {
    String s = "Hello";
    public A(String s) {
        System.out.println("參數 s = " + s);           // 參數
        System.out.println("成員 this.s = " + this.s); // 成員
        this.s = s; // 賦值給成員
    }
}

this.s 明確指向「當前物件的成員 s」,解決遮蔽問題。

2. 將當前物件作為參數傳遞

public class A {
    public A() { new B(this).print(); }
    public void print() { System.out.println("Hello from A!"); }
}
public class B {
    A a;
    public B(A a) { this.a = a; }
    public void print() { a.print(); System.out.println("Hello from B!"); }
}

new B(this) 將 A 實例傳給 B,實現回調或協作。

3. 內部類/匿名類中訪問外部類成員

public class A {
    int i = 1;
    public A() {
        new Thread() {
            public void run() {
                for (;;) {
                    A.this.run(); // 必須用 外部類名.this
                    sleep(1000);
                }
            }
        }.start();
    }
    public void run() { System.out.println("i = " + i++); }
}

匿名類 Thread 內的 this 指向匿名類自身,若同名方法需呼叫外部類,必須用 外部類名.this.方法()。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved