如果根本不指定訪問指示符
就象本章之前的所有例子那樣
這時會出現什麼情況呢?默認的訪問沒有關鍵字
但它通常稱為
友好
(Friendly)訪問
這意味著當前包內的其他所有類都能訪問
友好的
成員
但對包外的所有類來說
這些成員卻是
私有
(Private)的
外界不得訪問
由於一個編譯單元(一個文件)只能從屬於單個包
所以單個編譯單元內的所有類相互間都是自動
友好
的
因此
我們也說友好元素擁有
包訪問
權限
友好訪問允許我們將相關的類都組合到一個包裡
使它們相互間方便地進行溝通
將類組合到一個包內以後(這樣便允許友好成員的相互訪問
亦即讓它們
交朋友
)
我們便
擁有
了那個包內的代碼
只有我們已經擁有的代碼才能友好地訪問自己擁有的其他代碼
我們可認為友好訪問使類在一個包內的組合顯得有意義
或者說前者是後者的原因
在許多語言中
我們在文件內組織定義的方式往往顯得有些牽強
但在Java中
卻強制用一種頗有意義的形式進行組織
除此以外
我們有時可能想排除一些類
不想讓它們訪問當前包內定義的類
對於任何關系
一個非常重要的問題是
誰能訪問我們的
私有
或private代碼
類控制著哪些代碼能夠訪問自己的成員
沒有任何秘訣可以
闖入
另一個包內推薦可以聲明一個新類
然後說
嗨
我是Bob的朋友!
並指望看到Bob的
protected
(受到保護的)
友好的以及
private
(私有)的成員
為獲得對一個訪問權限
唯一的方法就是
(
) 使成員成為
public
(公共的)
這樣所有人從任何地方都可以訪問它
(
) 變成一個
友好
成員
方法是捨棄所有訪問指示符
並將其類置於相同的包內
這樣一來
其他類就可以訪問成員
(
) 正如以後引入
繼承
概念後大家會知道的那樣
一個繼承的類既可以訪問一個protected成員
也可以訪問一個public成員(但不可訪問private成員)
只有在兩個類位於相同的包內時
它才可以訪問友好成員
但現在不必關心這方面的問題
(
) 提供
訪問器/變化器
方法(亦稱為
獲取/設置
方法)
以便讀取和修改值
這是OOP環境中最正規的一種方法
也是Java Beans的基礎
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25944.html