構造函數

構造函數

1. 創建對象的語句:Human zhangsan = new Human();

2. 實際上調用了系統自帶的方法來構造對象並進行初始化,即構造函數。

3. 構造函數的作用是生成對象,並對對象的實例變量進行初始化。系統自帶的默認構造函數是把所有的數字設爲0,所有的布爾變量設爲false,所有的對象變量設爲null

package com.dzh.method;

 

public class Class_Method {

 

public static void main(String[] args) {

Human zhangsan = new Human();

zhangsan.print();//打印出zhangsan的屬性的默認值

 

}

 

}

 

class Human {

String name;

char sex;

int age;

String address;

 

public void print() {

System.out.println("name:" + name);

System.out.println("sex:" + sex);

System.out.println("age:" + age);

System.out.println("address:" + address);

}

 

4. 構造函數的特點:名字必須與類名相同且沒有返回值類型。

5. 構造函數的主要作用是對對象的變量進行初始化,如果不想把它們都初始化爲默認值,就需要自己編寫構造函數,通過有參數的構造函數可以把值傳遞給對象的變量。

6. Human的構造函數定義如下:

public Human(String hname, char hsex, int hage, String haddress) {

name = hname;

sex = hsex;

age = hage;

address = haddress;

}

創建對象時使用如下語句,這樣生成對象zhangsan 的屬性就被初始化爲相應的值。

Human zhangsan = new Human("zhangsan", '男', 20, "北京");

 

 

7. 已經定義了自己的構造函數,Java不再提供默認的構造函數,這時如果再使用默認的構造函數即Human zhangsan =new Human();編譯會出錯。只能使用程序中提供的構造函數來創建對象。

8. 構造函數的重載:根據不同的需求對構造函數進行重載,利用不同的構造函數進行對象的創建。 因爲有的時候並不需要對全部的變量進行初始化,而只對其中的一部分初始化即可。

package com.dzh.method;

 

public class Class_Method {

 

public static void main(String[] args) {

Human lisi = new Human();//調用構造函數1

lisi.print();

Human wangming = new Human("wangming",'女');//調用構造函數2

wangming.print();

Human zhangsan = new Human("zhangsan", '男', 20, "北京");//調用構造函數3

zhangsan.print();

 

}

 

}

 

class Human {

String name;

char sex;

int age;

String address;

//構造函數1

public Human(){

name = null;

sex = ' ';

age = 0;

address = null;

}

//構造函數2

public Human(String hname, char hsex) {

name = hname;

sex = hsex;

}

//構造函數3

public Human(String hname, char hsex, int hage, String haddress) {

name = hname;

sex = hsex;

age = hage;

address = haddress;

}

 

public void print() {

System.out.println("name:" + name);

System.out.println("sex:" + sex);

System.out.println("age:" + age);

System.out.println("address:" + address);

System.out.println("=============");

}

}

 

Human類中提供了3個不同的構造函數以滿足構造對象是不同的需要。以上例子看出,創建3個對象分別使用了3個不同的構造函數,起到了不同的效果。Java這個功能在很多情況下非常有用。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章