Java :: public/建構式/重載
文章推薦指數: 80 %
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,也等於是套件權限了,因為類別本身是套件權限,其它套件根本就無法使用類別了,更別說當中定義的方法。
延伸文章資訊
- 1public class與class的區別 - 程式人生
public class與class的區別; 一個java原始檔中可以定義多個class,; 一個Java原始檔中可以沒有public class,有且只有一個。(類體,之中不能直接寫java語...
- 2java中public class與class的區別詳解 - 程式前沿
如果一個類宣告的時候使用了public class進行了宣告,則類名稱必須與檔名稱完全一致。 範例:定義一個類(檔名稱為:Hello.java) 複製程式碼程式碼如下:
- 3Java學習之路08---方法 - iT 邦幫忙
public class Main { public static int testOne(int num){ return num + 10; } public static void tes...
- 4Java :: public/建構式/重載
package cc.openhome.virtual; public class CashCard { ...略 public CashCard(String number, int bala...
- 5定義類別(Class) | Java SE 6 技術手冊 - caterpillar
範例7.1 Account.java. public class Account { private String accountNumber; private double balance; ...