4-9面向物件程式設計(上)----關鍵字this的使用
阿新 • • 發佈:2021-01-23
一、this是什麼?
1.在Java中,this關鍵字比較難理解,它的作用和其詞義很接近。
(1)它在方法內部使用,即這個方法所屬物件的引用;
(2)它在構造器內部使用,表示該構造器正在初始化的物件。
2.this表示當前物件,可以呼叫類的屬性、方法和構造器
3.什麼時候使用this關鍵字?
(1)當在方法內需要用到呼叫該方法的物件時,就用this。
具體的:我們可以用this來區分區域性變數和屬性。
比如: this.name = name;
二、說明
1.this可以用來修飾或呼叫:屬性、方法、構造器。
2.this修飾屬性和方法,可以理解為“當前物件”或“當前正在建立的物件”。
(2)在類的構造器當中,我們可以使用“this.屬性”或“this.方法”的方式,呼叫當前正在建立的物件屬性或方法。但是,通常情況下,我麼你都選擇省略“this."。特殊情況下,如果構造器的形參和類的屬性同名時,我們必須顯示的使用“this.變數”的方式,表明此變數是屬性,而非形參。
三、this呼叫構造器
2.構造器中不能通過“this(形參列表)”方式呼叫自己。
3.如果一個類中有n個構造器,則最u哦有 n - 1 構造器中使用了“this(形參列表)”。
4.規定:“this(形參列表)”必須宣告在當前構造器的首行。
5.構造器內部,最多隻能宣告一個“this(形參列表)”,用來呼叫其他的構造器。
程式碼:
public class PersonTest {
public static void main(String[] args) {
Person p1 = new Person() ;
p1.setAge(1);
System.out.println(p1.getAge());
p1.eat();
System.out.println();
Person p2 = new Person(18);
System.out.println(p2.getAge());
}
}
class Person {
private int age;
private String name;
//this---->當前正在建立的物件
public Person() {
System.out.println("Person初始化時,要考慮好幾個條件,此處省略500行程式碼");
}
public Person(String name){
this();//呼叫構造器
this.name = name;
}
public Person(int age) {
this();//必須放在首行
this.age = age;
}
public Person(String name,int age) {
this(age);
this.name = name;
}
//this---->當前物件的
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;//this.age
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;//this.name
}
public void eat() {
System.out.println("人吃飯");
study();//this.study();
}
public void study() {
System.out.println("人學習");
}
}
輸出:
Person初始化時,要考慮好幾個條件,此處省略500行程式碼
1
人吃飯
人學習
Person初始化時,要考慮好幾個條件,此處省略500行程式碼
18