程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 友好訪問

友好訪問

編輯:關於JAVA

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved