Java :: public/建構式/重載

文章推薦指數: 80 %
投票人數:10人

package cc.openhome.virtual; public class CashCard { ...略 public CashCard(String number, int balance, int bonus) { . 回Java目錄 在封裝物件內部資料的CashCard類別是定義在cc.openhome套件中,假設現在為了管理上的需求,你要將CashCard類別定義至cc.openhome.virtual套件中,除了原始碼與位元碼的資料夾需求必須符合套件階層之外,原始碼內容也得作些修改: packagecc.openhome.virtual; classCashCard{    ... } 這一改可不得了,你發現使用到CashCard的程式碼都出錯了: 宣告為private的成員表示為類別私有,使用者無法在其它類別的程式碼中直接存取。

如果沒有宣告權限修飾的成員,只有在相同套件的類別程式碼中,才可以直接存取,也就是「套件範圍權限」。

如果不同套件的類別程式碼中,想要直接存取,就會出現上圖的錯誤訊息。

如果想在其它套件的類別程式碼中存取某套件的類別或物件成員,則該類別或物件成員必須是公開成員,在Java中要使用public加以宣告。

例如: packagecc.openhome.virtual; publicclassCashCard{ ...略 publicCashCard(Stringnumber,intbalance,intbonus){ ...略 } publicvoidstore(intmoney){ ...略 } publicvoidcharge(intmoney){ ...略 } publicintexchange(intbonus){ ...略 } publicintgetBalance(){ returnbalance; } publicintgetBonus(){ returnbonus; } publicStringgetNumber(){ returnnumber; } } 你可以宣告類別為public,這表示它是個公開類別,可以在其它套件的類別中使用,你可以在建構式上宣告public,這表示其它套件中的類別可以直接呼叫這個建構式,你可以在方法上宣告public,這表示其它套件的方法可以直接呼叫這個方法。

如果你願意,也可以在物件資料成員上宣告public。

回憶一下使用package管理類別提過,套件管理其實還有權限管理上的概念,沒有定義任何權限關鍵字時,就是套件權限,在Java中其實有private、protected與public三個權限修飾,你已經認識private與public的使用了,protected則會在繼承時說明。

如果類別上沒有宣告public權限關鍵字,類別中的方法宣告就算是public,也等於是套件權限了,因為類別本身是套件權限,其它套件根本就無法使用類別了,更別說當中定義的方法。



請為這篇文章評分?