構造方法(structuremethod)
解析:在java中,任何變量在被使用前都必須先設定初值.java提供了為類的成員變量賦初值的專門功能:構造方法(constructor)構造方法是一種特殊的成員方法,構造方法:方法名與類名一樣,沒有傳回值包括void。
注意:
1、 構造方法不能通過對象名.方法來調用,通過new關鍵字來調用。 // a.animal();不能這樣調用,因為構造方法隻能用new關鍵字來調用!
2、 若在一個構造方法中想要調用另一個方法裡的構造方法,使用this關鍵字,表示對目前對象的一個引用!this()括号裡的參數表示目标構造方法的參數,this應該放在構造方法中的第一條語句,之前不能有可執行的代碼。因為在生成執行個體的時候,構造方法優先調用。
例如:public animaltest()
{
system.out.println("animal");
}
public animaltest(string name)
this();//隻能放在第一行
system.out.println("animal" + name);
3、 構造方法的名字必須與定義他的類名完全相同,沒有傳回類型,甚至連void也沒有。
例如:
public class animaltest
{
public animaltest()
}
4、 構造方法的調用是在建立一個對象時使用new操作進行的。構造方法的作用是初始化對象。
animaltest a = new animaltest("dog");
5、 每個類可以有零個或多個構造方法.
6、 不能被static、final、synchronized、abstract和native修飾。構造方法不能被子類繼承。
7、 構造方法在建立對象時自動執行,一般不能顯式地直接調用.
8、 構造方法可以被重載。沒有參數的構造方法稱為預設構造方法,與一般的方法一樣,構造方法可以進行任何活動,但是經常将他設計為進行各種初始化活動,比如初始化對象的屬性。
public class animal{
public animal(){
system.out.println("animal");
public animal(string name){
system.out.println("你的名字是"+name);
public static void main(string[] args) {
animal a=new animal();
//a.animal();不能這樣調用,因為構造方法隻能用new關鍵字來調用!
animal a2=new animal("mary");
繼承中的構造方法
1、 子類的構造的過程中必須調用其基類的方法。
2、 子類可以在自己的構造方法中使用super(參數清單)調用基類的構造方法。super在繼承中尋找父類帶參數的構造方法。對父類對象的引用。如果子類使用super()顯式調用父類的某個構造方法,那麼在執行的時候就會去尋找與super所對應的方法,而不會再去尋找父類不帶參數的構造方法,super也必須放在可執行語句的第一行。
使用this(參數清單)調用本類另外的構造方法。this在構造方法中尋找另一個方法裡帶參數的構造方法。
3、 如果使用super,必須寫在子類構造方法的第一行。
4、 如果子類的構造方法中沒有顯示地調用基類構造方法,則系統預設調用基類無參數的構造方法。
5、 如果子類的構造方法中既沒有顯示調用基類構造方法,而基類中又沒有無參數的構造方法,則編譯出錯。
6、 當生成子類對象時,java預設首先調用父類的不帶參數的構造方法,然後執行該構造方法,生成父類的對象。接下來,再去調用子類的構造方法,生成子類的對象。(要想生成子類的對象,首先必須生成父類的對象,沒有父類的對象就沒有子類的對象。例如:沒有父親就沒有孩子。)
執行個體代碼精講:
public class animal
public animal()
public animal(string str){
system.out.println("animal stris"+str);
public static void main(string[] args)
animal d = new dog();//多态的一種展現
dog d2=new dog("dog");
class dog extends animal
public dog()
super("animal");
system.out.println("dog");
public dog(string str){
system.out.println("dog str is"+str);
輸出結果為:
animal str isanimal//調用父類animal帶參數的構造方法
dog//執行自己的方法
animal //調用父類不帶參數的構造方法。
dog str is dog//執行自己的方法