參考:
Java 基礎教程
耿祥義 著
清華大學出版社
isbn 7-302-09142-0
一、類Class
1.類聲明
2.類體
例子:
class ClassName //類名
{ //類體
.....
}; //由class 開始到本行為類聲明.
類體可分成兩部份:1.變量定義 2.方法定義
例子:
class Square
{
int num_side; //變量定義
float area; // 成員變量
float calc_area_method(int local_var1) //方法定義
{
float local_var2;
};
}; //End of ClassName
二、變量:
在變量定義部份所定義的變量稱為『類的成員變量』如 num_side, area
而在方法體中的稝稱為局部變量,如 lcoacl_var1, local_var2
有效範圍: 成員變量在整個變量都有效, 而局部變量只在定義它的方法有效.
成員變量又分為『實例成員變量』(實例變量) 和 『類成員變量』(類變量/靜態成員變量)
例子:
class Animal
{
int legs; //實例變量
static int head; //類變量, 加 static
..............
};
三、方法:
語法格式
Method Overload
constructor
與變量相似,方法可分為『實例方法』與『類方法』
class ClassName
{
int var1;
static float var2;
float method1() // instant method
{
};
static int method2() // class method or static method
{
};
}; //end of ClassName
四、Object(物件、對象)
語法:
ClassName objectName;
objectName = new ClassName( ); //此處 ClassName( ) 為 default 的 constructor.
//若帶有arguments 則為對應之constructor.
寫成一句的形式:
ClassName objectName = new ClassName( );
Object的建立與內存分配:
當運行ClassName objectName 時系統在內存中建立了一個單元,名為objectName其中不包括任何數據.亦即没有任何"實體".
而運行到objectName = new ClassName( ); 系統建立Object分配各個成員變量的內存和初值,返回一個"引用",也就是返回一個地址(代表這些成員變量內存的首地址)給objectName.
建立多個Object,則各自有自己的引用.
五、static 的說明
當Java程序開始運行時,類的byte code載入內存,類變量(static)則會分配內存,但若該類没有創建object,則該類的實例變量不會被分配內存.每當新建objects各自建立實例變量且互不相同,共享類載入的類變量,類變量佔用內直至程序結束,任何的改變則會影響其它object.
實例方法與類方法比較與上述相似,類實例方法在byte code載入時若未建立任何object則不會為其分配入口地址,直到建立了第一個object,注意,其後建立的object共享第一個入口地址而不用再分配.對於類方法,類載入時即獲得分配地址,不論是否有相應的object.
從而,static method何以不用在建立物件前即可以以 ClassName.staticMehtod的形式調用.
Sunday, December 24, 2006
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment