App下載

Java this 關鍵字詳解

猿友 2021-01-04 14:51:25 瀏覽數 (2943)
反饋

this 關鍵字

this 關鍵字代表了所屬函數的調用者對象。

this 關鍵字的作用:

  • 如果存在同名成員變量與局部變量時,在方法內部默認是訪問局部變量的數據,可以通過 this 關鍵字指定訪問成員變量的數據;
  • 在一個構造函數中可以調用另外一個構造函數初始化對象。

this 關鍵字調用其他的構造函數要注意的事項: 

  • this 關鍵字調用其他的構造函數時,this關鍵字必須要位于構造函數中的第一個語句;
  • this 關鍵字在構造函數中不能出現互相調用的情況,因為是一個死循環(huán)。

this 關鍵字要注意的事項:

  • 存在同名的成員變量與局部變量時,在方法的內部訪問的是局部變量(java采取的是“就近原則”的機制訪問的);
  • 如果在一個方法中訪問了一個變量,該變量值存在成員變量的情況下,那么java編譯器會在該變量的前面添加this關鍵字。

this關鍵字調用其他的構造函數要注意的事項: 

  • this關鍵字調用其他的構造函數時,this關鍵字必須要位于構造函數中的第一個語句;
  • this關鍵字在構造函數中不能出現互相調用的情況,因為是一個死循環(huán)。

推薦好課:深入解析Java面向對象、Java基礎入門到框架實踐


this關鍵字實例

class Student{

    int id; //身份證

    String name; //名字

    //目前情況: 存在同名的成員變量與局部變量,在方法內部是使用局部變量的。

    public Student(int id, String name) { //一個函數的形式參數也是屬于局部變量。

        //調用了本類的一個參數的構造方法

        //this(name);//如果能在這里調用到下面一個參數的構造方法時,那就可以解決重復代碼的問題。

        this(); //調用了本類的無參的構造方法。

        this.id = id; //this.id = id; 局部變量的id給成員變量的id賦值。

        System.out.println("兩個參數的構造方法調用了...");

    }

    public Student() {

        System.out.println("無參的構造方法被調用了...");

    }

    public Student(String name) {

        this.name = name;

        //System.out.println("一個參數的構造方法被調用了...");

    }

}

public class Demo1 {

    public static void main(String[] args) {

        Student s = new Student(110, "迪迦");

        System.out.println("編號: "+s.id+"  名字: "+s.name);

        Student s2 = new Student("W3CSCHOOL");

        System.out.println("名字: "+s2.name);

    }

}


0 人點贊