一、this關(guān)鍵字
1 this關(guān)鍵字代表當前對象,即代指調(diào)用this所在方法的對象
2 this關(guān)鍵字的使用
當局部變量和成員變量重名的時候,可以考慮使用this來區(qū)分
3 this關(guān)鍵字的特點
a. 成員變量和局部變量重名的時候使用this
b. 創(chuàng)建任何一個對象時都會創(chuàng)建一個this引用并和對象指向同一個堆區(qū)的空間
c. this代表當前對象,可以理解為誰調(diào)用了this所在的方法,this就是誰
d. this只能夠出現(xiàn)在類的內(nèi)部
e. 默認訪問類的成員都可以使用this來訪問,如果訪問成員沒有書寫this,默認系統(tǒng)會加上this
4 代碼演示
public class ThisDemo {
public static void main(String[] args) {
Person s=new Person();//在Person類中創(chuàng)建s對象
s.display(10); // 使用 s 對象調(diào)用show()方法
}
}
class Person{
int age;
public void display(int age){
this.age=age; //當s對象調(diào)用show()方法時,this就代指s對象,所以this.age就等同于為s.age
}
}
二 、super關(guān)鍵字
1 super關(guān)鍵字的概念:的本質(zhì)是父類存儲空間的標識,可以理解為父類對象
2 super關(guān)鍵字的作用:幫助子類初始化父類繼承下來的成員,簡化編程
3 super關(guān)鍵字的用法:
①訪問成員變量:super.成員變量;
②訪問成員方法:super.成員方法;
③訪問構(gòu)造方法:super(參數(shù)列表);
4 注意事項
注意:
a 任何一個類的無參或者帶參構(gòu)造方法的第一句都默認省略 super();
b 任何一個類都直接或者間接繼承自O(shè)bject類
c 創(chuàng)建一個子類對象默認會去調(diào)用父類的構(gòu)造方法
d 靜態(tài)環(huán)境/靜態(tài)上下文(static修飾的方法),不能夠出現(xiàn)this和super
e super必須出現(xiàn)在構(gòu)造方法的第一句
f this和super不能夠共存
5 代碼演示
class practic4 {
public static void main(String[] args) {
Son s=new Son(“張三”,18); // 創(chuàng)建s對象,訪問父類帶參構(gòu)造并給父類成員變量賦初始值
}
}
class Father {
String name;
int age;
Father() {
super();
}
Father(String name, int age) { //通過父類的帶參構(gòu)造方法給繼承到子類的成員變量賦值(初始化)
this.name = name;
this.age = age;
}
}
class Son extends Father {
Son() {
super();
}
Son(String name, int age) { //創(chuàng)建對象時訪問該構(gòu)造方法
super(name,age); // 此處訪問父類帶參構(gòu)造方法
}
}