關(guān)于類,構(gòu)造器,實(shí)例字段的筆記
當(dāng)一個(gè)源文件編譯過程中需要調(diào)用另外的類,編譯器會(huì)自動(dòng)編譯.
主力類:workhorse class,一般不具備main方法,而是具有自己的實(shí)例字段(instance field)和方法(method).
關(guān)鍵字public表示任意類中的任一方法都可以調(diào)用這個(gè)方法.
關(guān)鍵字private用來確保訪問實(shí)例字段的方法只能是類本身的方法.任何外部方法都無法讀或者寫這些字段.
PS:也可以對(duì)實(shí)例字段用public關(guān)鍵字,但是這是很糟糕的做法,public的數(shù)據(jù)字段將允許程序任何部分對(duì)其訪問和修改,這樣就破壞了封裝.
構(gòu)造器(constructor)
構(gòu)造器的名字和類的名字是一樣的.但是同方法的區(qū)別子在于:構(gòu)造器只能和new運(yùn)算符一起被調(diào)用.不能把
構(gòu)造器用于一個(gè)已經(jīng)存在的對(duì)象以重新設(shè)置其實(shí)例字段.
一個(gè)類可以具有多個(gè)構(gòu)造器(這在JAVA類庫中得以完整提現(xiàn))
構(gòu)造器可以具有0個(gè)或者多個(gè)參數(shù)
構(gòu)造器沒有返回值
構(gòu)造器和new運(yùn)算符總是一起調(diào)用
PS:注意不要在構(gòu)造器中定義和實(shí)例字段一樣的局部變量.
例子:public yangfan(String n,int a)
{
string name = n;
int age = a;
}
private String name;
private int age;
這樣的寫法會(huì)在構(gòu)造器內(nèi)部遮蔽(shadow)了相同名字的實(shí)例字段,以上name,age兩個(gè)實(shí)例字段將被遮蔽
而且程序出錯(cuò)的時(shí)候也會(huì)非常難以發(fā)現(xiàn)問題的所在.
關(guān)鍵:不要讓自己使用和實(shí)例字段同名的變量.
posted @ 2006-03-11 19:44 極地呆呆 閱讀(239) | 評(píng)論 (0) | 編輯 收藏