點擊查看:2015計算機等級考試二級Java入門教程章節匯總
點擊查看:2015計算機等級考試二級Java入門教程第五章匯總
5.4 構造函數
當你建立一個類對象時,總要調用一個被稱作構造函(ConStructor)的特殊方法。如果你沒有為類定義構造函數,編譯器將在類中提供一個沒有任何操作的默認構造函數。構造函數的主要目的是提供一種方法,對正在建立的對象的實例變量單獨進行初始化。如果你正在用名字John Dae建立一個person對象,并希望能夠初始化成員,讓它保存這個人的名字"john Doe".很清楚,這就是構造函數能夠完成的操作。在類中,已經定義的初始化塊總是在構造函數之前被執行。
構造函數有兩個特別的性質不同于其他的類方法:
·構造函數永遠沒有返回值,你也決不能為它指定返回類型,甚至是void類型
·構造函數的名字永遠與類名相同
讓我們來看一個例子,為Sphere類定義增加一個構造函數:
Class sphere
{
Static final double PI=3.14; //class variable that has fixed value
Static int count=0 //class variable to count objects
//Instance variables
Double radius; //Radius of a sphere
Double xCenter //3D coordinates
Double yCenter //of the center
Double zcenter //of a sphere
//class constructor
sphere(double x,double y,double z)
(
radius-cheRadius; //set the radius
}
//Set the coordinates of the center
xCenter=x;
yCenter=y;
zCenter=z;
++count; //Update object count
//static method to report the number of objects created
Static int getCount()
{
Return count; //Return current object count
}
//Instance method to calculate volume
Double volume()
{
Return 4.0/3.0*PI*radius*radius*radius;
}
}
構造函數的定義在以上代碼中的陰影部分。我們正在逐步積累更多的代碼來定義Sphere類,然而,你會發現我們己經集中在一起的代碼段都十分明了清楚。
正像你看到的那樣,構造函數名與類名相同,并且沒有指定返回類型。一個構造函數可以擁有任意多個參數,也可以沒有參數。在我們的例子中有四個參數,并且每個實例變量都用相應的參數值進行初始化。有這樣一種情況,我們可能己經在參數中使用了radius這個名字,那么,當我們要引用同名的實例變量時,就需要借助于關鍵字this來實現。構造函數的最后一項操作是為類變量遞增1,使得count來累計已經建立的對象數目。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |