1. 程式人生 > >構造方法(定義、有參、無參、過載)

構造方法(定義、有參、無參、過載)

一、構造方法是什麼,有什麼用?

構造方法是類的一個特殊的成員,在類例項化時會自動呼叫。
通過前面的學習,我們知道為一個屬性賦值有兩種方法:①、直接訪問物件屬性 ②、通過setXxx()方法
如果想在例項化物件的同時就為這個物件的屬性進行賦值,可以通過構造方法來實現

二、構造方法的定義

構造方法三個條件:
①、方法名和類名相同
②、在方法名前面沒有返回值型別的宣告
③、在方法中不能使用return語句

Person p=new Person( );
//new Person()語句有兩個功能
//①例項化Person物件    ②自動呼叫構造方法Person( )

三、無參構造方法、有參構造方法

class Person{
    public Person( ){
        System.out.println("無參構造方法被呼叫");
   }    
}

public class Test01{
    public static void main (String [] args ){
        Person p=new Person();//例項化Person物件
    }
}
//該方法是無參的構造方法,即構造方法不接收引數,執行後輸出 無參的構造方法被呼叫了

下面是有參的構造方法

class Person{
    int age;
    //有參構造方法
public Person (int a){ age=a; } public void speak(){ System.out.println("我今年"+age+"歲"); } } public class Test02{ public static void main (String [] args){ Person p=new Person (20);//例項化同時賦值 p.speak(); } }

四、構造方法的過載

像普通方法一樣,構造方法也可以過載(引數型別或者引數個數不同)。
在建立物件時,可以通過呼叫不同的構造方法為不同的屬性賦值。

五、構造方法注意事項

java中每一個類都至少有一個構造方法,如果我們沒有建立,系統弄會自動為我們建立一個預設的構造方法(無參,方法體中無程式碼)。
但是隻要我們自己定義了構造方法,系統就不會再為我們提供預設的構造方法了。如果我們定義了一個有參的構造方法,最好再定義一個無參的。因為例項化物件的時候,不一定會輸入引數,那麼沒有無參的構造方法,再不輸入引數,就會出錯。
另外構造方法需要使用public來修飾,因為使用private的話,在別的類中無法例項化。