this關鍵字與super關鍵字
阿新 • • 發佈:2019-02-17
一 this關鍵字
this關鍵字在程式中三種常見的用法:
(1)通過this關鍵字可以明確地去訪問一個類的成員變數,解決與區域性變數名稱衝突問題。
例:
<span style="font-size:14px;">class Person{
int age;
public Person(int age){
this.age=age;
}
public int getAge (){
return this.age;
}
}</span>
在上面的程式碼中,構造方法的引數被定義為age,它是一個區域性變數,在類中還定義了一個成員變數,名稱也是age,在構造方法中如果使用“age”,則是訪問區域性變數,但如果使用“this.age”則是訪問成員變數。(2)通過this關鍵字呼叫成員方法
(3)構造方法是在例項化物件時被java虛擬機器自動呼叫的,在程式中不能像呼叫其它方法一樣去呼叫構造方法,但可以在一個構造方法中使用“this([引數1,引數2...])”的形式呼叫其它的構造方法。
在使用this呼叫類的構造時應注意:<span style="font-size:14px;"> class Person{ public Person(){ System.out.printIn(無參的構造方法被呼叫了); } public Person(String name){ this(); System.out.printIn(有參的構造方法被呼叫了); } } public class Example{ public static viod main (String[] args){ Person p=new Person("itcast"); } }</span>
1.只能在構造方法中使用this呼叫其它的構造方法,不能在成員方法中使用。
2.在構造方法中,使用this呼叫構造方法的語句必須位於第一行,且只能出現一次。
3.不能再一個類的兩個構造方法中使用this互相呼叫。
二 Super關鍵字
當子類重寫父類的方法後,子類物件將無法訪問父類被重寫的方法,為了解決這個問題,在java中專門提供一個super關鍵字用於訪問父類的成員。
super的用法:
(1)使用super呼叫父類的成員變數和成員方法。格式如下:
super.成員變數
(2) 使用super呼叫父類的構造方法。<span style="font-size:14px;"> super.成員方法([引數1,引數2....]) </span>
例:
<span style="font-size:14px;">class Animal{
public Animal(String name){
System.out.printIn("我是一隻"+name);
}
}
class Dog extends Animal{
public Dog(){
super("狼狗");
}
}
public class Example{
public static viod main(String[ ] args ){
Dog dog=new Dog();
}
}
</span>
注意:通過super呼叫父類的構造方法的程式碼必須位於子類構造方法的第一行,並且只能出現一次。