點(diǎn)擊查看:2015計(jì)算機(jī)等級考試二級Java入門教程章節(jié)匯總
點(diǎn)擊查看:2015計(jì)算機(jī)等級考試二級Java入門教程第五章匯總
5.4 構(gòu)造函數(shù)
當(dāng)你建立一個(gè)類對象時(shí),總要調(diào)用一個(gè)被稱作構(gòu)造函(ConStructor)的特殊方法。如果你沒有為類定義構(gòu)造函數(shù),編譯器將在類中提供一個(gè)沒有任何操作的默認(rèn)構(gòu)造函數(shù)。構(gòu)造函數(shù)的主要目的是提供一種方法,對正在建立的對象的實(shí)例變量單獨(dú)進(jìn)行初始化。如果你正在用名字John Dae建立一個(gè)person對象,并希望能夠初始化成員,讓它保存這個(gè)人的名字"john Doe".很清楚,這就是構(gòu)造函數(shù)能夠完成的操作。在類中,已經(jīng)定義的初始化塊總是在構(gòu)造函數(shù)之前被執(zhí)行。
構(gòu)造函數(shù)有兩個(gè)特別的性質(zhì)不同于其他的類方法:
·構(gòu)造函數(shù)永遠(yuǎn)沒有返回值,你也決不能為它指定返回類型,甚至是void類型
·構(gòu)造函數(shù)的名字永遠(yuǎn)與類名相同
讓我們來看一個(gè)例子,為Sphere類定義增加一個(gè)構(gòu)造函數(shù):
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;
}
}
構(gòu)造函數(shù)的定義在以上代碼中的陰影部分。我們正在逐步積累更多的代碼來定義Sphere類,然而,你會發(fā)現(xiàn)我們己經(jīng)集中在一起的代碼段都十分明了清楚。
正像你看到的那樣,構(gòu)造函數(shù)名與類名相同,并且沒有指定返回類型。一個(gè)構(gòu)造函數(shù)可以擁有任意多個(gè)參數(shù),也可以沒有參數(shù)。在我們的例子中有四個(gè)參數(shù),并且每個(gè)實(shí)例變量都用相應(yīng)的參數(shù)值進(jìn)行初始化。有這樣一種情況,我們可能己經(jīng)在參數(shù)中使用了radius這個(gè)名字,那么,當(dāng)我們要引用同名的實(shí)例變量時(shí),就需要借助于關(guān)鍵字this來實(shí)現(xiàn)。構(gòu)造函數(shù)的最后一項(xiàng)操作是為類變量遞增1,使得count來累計(jì)已經(jīng)建立的對象數(shù)目。
相關(guān)推薦:
2015計(jì)算機(jī)等級考試二級Java入門教程章節(jié)匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |