2016/4/30

public:Java為例

並參考  http://openhome.cc/Gossip/Java/Public.html

有沒有一種情況,你在寫java程式時,你要import一些東西,紅字才會不見,通常這情況下,import的java檔會在另一個package

來說說public



承上篇文章中,Main.java和CashCard.java都在同個Package底下

現在我們把CashCard.java放到另一個package叫virtual



你會發現


1
2
3
4
5
6
7


package Package1;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        CashCard card1 = new CashCard("A001", 500, 0);//編譯錯誤
        card1.store(sc.nextInt());


這時只要上面加個import virtual.CashCard;就可以了

但import virtual.CashCard;這行還是錯!!

這時你就要用到public了

請在CashCard.java前面加上public

1
2
3
4
5
6
7
8
9
10


package virtual;
public class CashCard {
    private String number;
    private int balance;
    private int bonus;
    CashCard(String number,int balance,int bonus){
        this.number = number;
        this.balance = balance;
        this.bonus = bonus;
    }


如果你要在其他package中存取其他class的資料物件成員,那被存取的那個class要加上public

但換到這三行錯誤...???


1
2
3


CashCard card1 = new CashCard("A001", 500, 0);//失敗
card1.store(sc.nextInt());//失敗
System.out.printf("%d",card1.getBalance());//失敗


好...請去把CashCard.java中的method都加上public

是不是就好了呢?



總結:

public可放三個地方

1.class

2.method、constructor

3.你願意的話,資料物件成員也可

被加上去的東西,表公開的,可被其他package中的類別所使用







沒有留言:

張貼留言