JAVA THIS的各種 “ 特殊 “ 用法

This的用法

1.基礎用法-類別的成員變數

在 Java 中,this 關鍵字用於指向當前對象,這在多個變數具有相同名稱(例如,方法參數和類成員變數)的情況下特別有用。

假設你有一個類,其中有一個成員變數 A,並且你想通過構造函數或某個方法來初始化它。在這種情況下,你可能會這樣做:

public class MyClass {
    private int A;  // 這是一個成員變數

    public MyClass(int A) {
        this.A = A;  // 'this.A' 指的是成員變數,而 'A' 是方法的參數
    }

    public void setA(int A) {
        this.A = A;  // 同樣,'this.A' 是成員變數,'A' 是方法的參數
    }

    public int getA() {
        return this.A;  // 這裡,'this' 是可選的,因為沒有名稱衝突
    }
}

//在這個例子中,this.A = A; 這行碼做了以下事情:

//this.A 指的是類 MyClass 的成員變數 A。
//等號右邊的 A 是構造函數 MyClass(int A) 或方法 setA(int A) 的參數。
//this.A = A; 這行碼將參數 A 的值賦給成員變數 A。

2. 同類中的對象的其他方法

this 關鍵字主要用於指向當前實例(對象)的變數和方法,而不是函數或方法本身。換句話說,this 不能用來指向函數或方法。

但!!!!是 ! ! ! ,你可以使用 this 來調用該類的其他方法,這樣做通常是為了在同一個類的多個方法之間共享某些行為或數據。例如:

public class MyClass {
    private int x;

    public MyClass(int x) {
        this.x = x;
    }

    public void methodOne() {
        System.out.println("Method One");
        this.methodTwo();  // 使用 'this' 來調用同一個類的另一個方法
    }

    public void methodTwo() {
        System.out.println("Method Two, x = " + this.x);
    }

    public static void main(String[] args) {
        MyClass obj = new MyClass(10);
        obj.methodOne();  // 輸出將會是 "Method One" 接著是 "Method Two, x = 10"
    }
}

3.接下來都是特殊的用法- **方法鏈接(Chaining)**:

在一個方法中返回 `this` 可以實現方法鏈接。

  
    public class MyClass {
        private int x;
        
        public MyClass setX(int x) {
            this.x = x;
            return this;  // 返回當前對象以實現方法鏈接
        }
    }

   使用方法:

    MyClass obj = new MyClass();
    obj.setX(5).setX(10);  // 方法鏈接


 

4. **作為方法參數**:`this` 可以作為參數傳遞給其他方法。

   

  public void myMethod(MyClass obj) {
        // do something
    }
    
    public void anotherMethod() {
        myMethod(this);  // 將當前對象作為參數傳遞
    }

5. **在建構函數中調用其他建構函數**:

使用 `this()` 可以在一個建構函數中調用同一類的另一個建構函數。

public class MyClass {
    public MyClass() {
        this(5);  // 調用另一個建構函數
    }
    
    public MyClass(int x) {
        // do something
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值