Java自學筆記(十一)
阿新 • • 發佈:2018-11-10
構造方法
構造方法,建立物件時候給予物件賦值的一種方式,在new的時候執行。 構造方法格式: 修飾符 + 方法名稱(引數型別和名稱){ …… } 注意,構造方法的名稱必須和類名保持完全一致(大小寫也要統一)例子:
關於構造方法,如果類當中沒有使用構造方法,Java是自動生成空構造方法,對於上述而言,即是 “Animal(){}",另外,在一個類中允許構造方法的過載。 由構造方法過載衍生出來的,便是構造方法之間的呼叫,這裡面的關鍵字還是this,但區別成員變數與方法變數之間的this.的方式,使用this(),下面是例子
由this()帶出來同類之間的構造方法呼叫,當然也就有父子類的構造方法使用。class Person { private int age; private String name; Person() { } Person(String s) { name = s; } Person(String s, int a) { this(s); //必須放在構造方法的第一行,跟後邊super()一樣的性質 age = a; } }
簡單說明一下: 呼叫本類中的構造方法:this(引數型別+名字); 呼叫父類中的空引數構造方法:super(); 呼叫父類中由引數的構造方法:super(引數型別+名字); 構造方法都是預設存在的,所以,哪怕在子類繼承父類的情況下,子類存在構造方法時,會去執行預設的super(); 由於子類繼承了父類的內容,建立物件時,要先看父類是如何對其內容進行初始化的,所以 子類物件建立都要訪問父類中的構造方法。 另外,this()和super()不能同時出現
public class Test {
public static void main(String[] args) {
new Zi();
}
}
class Fu{
int i ;
Fu(){
System.out.println("Fu構造方法"+i);
i = 1;
}
}
class Zi extends Fu{
Zi(){
//super(); 呼叫父類空引數構造方法
System.out.println("Zi構造方法"+i);
}
}