this的四種用法及注意事項


1.代表成員變量

我們如何區分開:同名的成員變量和在構造方法中的局部變量呢?---用this。

package com.dh.oop;

public class ThisDemo {
    
    public String name;
    
    public ThisDemo(String name){
        
        //將構造方法的參數值賦值給成員變量
        this.name = name;
    }
}

在構造方法中,this代表的就是成員變量。

2.代表當前對象的引用

我們知道,在實例化對象時,會利用構造方法進行初始化成員變量,所以每調用一次構造方法,初始化的都是正在實例化的這個對象的成員變量,即this,所以在構造方法中輸出this,結果為當前對象的哈希碼值。對象是引用數據類型,直接輸出,輸出的就是其地址。

package com.dh.oop;

public class ThisDemo {

    public String name;

    public ThisDemo(){
        
        //在構造方法中輸出this,為當前調用構造方法實例化對象的哈希碼值
        System.out.println(this);
    }

    public static void main(String[] args) {
        
        ThisDemo tom = new ThisDemo();
        ThisDemo jerry = new ThisDemo();
    }
}

3.在構造方法中使用this調用其它構造方法

package com.dh.oop;

public class ThisDemo {

    public String name;
    public int age;

    //第一個構造方法
    public ThisDemo(String name){

        //調用第二個構造方法
        this(name,18);
    }

    //第二個構造方法
    public ThisDemo(String name,int age) {

       this.name = name;
       this.age = age;
    }

    public static void main(String[] args) {

        //調用第一個構造方法
        ThisDemo tom = new ThisDemo("tom");
        System.out.println(tom.name+"\t"+tom.age);
    }
}

分析結果,雖然在main方法中調用的是第一個構造方法,但由於在第一個構造方法中調用了第二個構造方法,所以輸出了tom 18。

注意:

必須放在第一行,所以每個構造器中只能使用一次,因為必須要保證在第一行,但是要注意,不能相互調用,否則書寫代碼時就會報錯。

4.調用其它成員方法

 public void show(){
        System.out.println("show");
    }
    
    public void show1(){
        //調用其它成員變量,該this通常可省略
        this.show();
        show();
    }

這種用法了解一下即可~

5.this使用注意事項

this不能用於static方法中!

很很很淺顯的解釋一下:static修飾的方法是靜態方法,是屬於類的,它是在類裝載的時候初始化的,也就是說它是最早出生的方法,這個時候對象都還沒出生,你卻讓static方法去使用它,這肯定是不對的!你不能在你媽媽都沒懷上你的時候就去給學校報名讓你上學吧!


最最常用的就是1,以及注意事項要了解。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM