(this關鍵字)小總結---Java
阿新 • • 發佈:2021-02-14
一、this表示當前物件引用,可以藉助this來訪問物件的欄位和方法,這裡的方法包括普通方法和構造方法。
1、通過this呼叫類中的屬性
(1)Person.java
public class Person {
private String name;
private int age;
private String gender;
public Person() {//預設建構函式
//this呼叫類中的屬性
this.name = "人物1";//構造時初始化
this .age = 20;
this.gender ="女";
}
public Person(String name, int age, String gender) {//形參的命名和屬性的命名一樣
//this呼叫類中的屬性
this.name = name;
this.age = age;
this.gender = gender;
}
public void show(){
System.out.println("name:"+this. name+" age:"+this.age+" gender:"+this.gender);
}
}
(2) PersonTest.java
public class PersonTest {
public static void main(String[] args) {
Person P1=new Person();//呼叫無引數的建構函式
Person P2=new Person("人物2",22,"男");//呼叫三個引數的建構函式
P1.show ();
P2.show();
}
}
(3) 執行結果
2、通過this呼叫類中的方法
(1)
public class Person {
private String name;
private int age;
private String gender;
public Person() {//預設建構函式
this.name = "人物1";//構造時初始化
this.age = 20;
this.gender ="女";
}
public Person(String name, int age, String gender) {//形參的命名和屬性的命名一樣
this.name = name;
this.age = age;
this.gender = gender;
}
public void study(){
System.out.println(this.name+"正在學習,勿擾!");
}
public void show(){
System.out.println("name:"+this.name+" age:"+this.age+" gender:"+this.gender);
this.study();//在show方法中,通過this引用呼叫本類的study方法。//其實在這裡this可以省略
}
}
(2)
public class PersonTest {
public static void main(String[] args) {
Person P1=new Person();//呼叫無引數的建構函式
Person P2=new Person("人物2",22,"男");//呼叫三個引數的建構函式
P1.show();
P2.show();
}
}
(3)執行結果
3、通過this呼叫自身的構造方法
(1)
public class Person {
private String name;
private int age;
private String gender;
public Person() {
//this呼叫建構函式
this("人物1",22,"女");//必須放在第一行顯示
System.out.println("這是第二行");
}
public Person(String name, int age, String gender) {//形參的命名和屬性的命名一樣
this.name = name;
this.age = age;
this.gender = gender;
}
public void show(){
System.out.println("name:"+this.name+" age:"+this.age+" gender:"+this.gender);
}
}
(2)
public class PersonTest {
public static void main(String[] args) {
Person P1=new Person();//呼叫無引數的建構函式
Person P2=new Person("人物2",22,"男");//呼叫三個引數的建構函式
P1.show();
P2.show();
}
}
(3)執行結果
二、注意
1、this代表的是當前物件的引用,而不是代表當前物件。
2、使用this呼叫構造方法時,只能在構造方法中使用,不能在普通方法中使用。
3、需要在一個構造方法中呼叫當前類的另一個構造方法時,通過this()的形式呼叫。必須放在第一行,且只能呼叫一個。
示例:
public class Person {
private String name;
private int age;
private String gender;
public Person() {
//this呼叫建構函式
this("人物1",22,"女");//必須放在第一行顯示
//this("人物2",19); //編譯錯誤 因為當前類只能呼叫一個構造方法
}
public Person(String name, int age, String gender) {//形參的命名和屬性的命名一樣
this.name = name;
this.age = age;
this.gender = gender;
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}