您的位置:首頁>正文

尚學堂java學習筆記:介面與實現

我們通常認為存取控制是“隱藏實施細節”的一種方式。 將資料和方法封裝到類內後, 可生成一種資料類型, 它具有自己的特徵與行為。 但由於兩方面重要的原因, 訪問為那個資料類型加上了自己的邊界。 第一個原因是規定客戶程式師哪些能夠使用, 哪些不能。 我們可在結構裡構建自己的內部機制, 不用擔心客戶程式師將其當作介面的一部分, 從而自由地使用或者“濫用”。

這個原因直接導致了第二個原因:我們需要將介面同實施細節分離開。 若結構在一系列程式中使用, 但使用者除了將消息發給public 介面之外,

不能做其他任何事情, 我們就可以改變不屬於public 的所有東西(如“友好的”、protected 以及private), 同時不要求用戶對他們的代碼作任何修改。

我們現在是在一個物件導向的程式設計環境中, 其中的一個類(class)實際是指“一類物件”, 就象我們說“魚類”或“鳥類”那樣。

從屬於這個類的所有物件都共用這些特徵與行為。 “類”是對屬於這一類的所有物件的外觀及行為進行的一種描述。

在一些早期OOP 語言中, 如Simula-67, 關鍵字class 的作用是描述一種新的資料類型。 同樣的關鍵字在大多數物件導向的程式設計語言裡都得到了應用。 它其實是整個語言的焦點:需要新建資料類型的場合比那些用於容納資料和方法的“容器”多得多。

在Java 中, 類是最基本的OOP 概念。 它是本書未採用粗體印刷的關鍵字之一——由於數量太多, 所以會造成頁面排版的嚴重混亂。

為清楚起見, 可考慮用特殊的樣式創建一個類:將public 成員置於最開頭, 後面跟隨protected、友好以及private 成員。 這樣做的好處是類的使用者可從上向下依次閱讀, 並首先看到對自己來說最重要的內容(即public 成員, 因為它們可從檔的外部訪問), 並在遇到非公共成員後停止閱讀, 後者已經屬於內部實施細節的一部分了。 然而, 利用由javadoc 提供支援的注釋文檔(已在第2 章介紹), 代碼的可讀性問題已在很大程度上得到了解決。

於介面和實施細節仍然混合在一起,

所以只是部分容易閱讀。 也就是說, 仍然能夠看到源碼——實施的細節, 因為它們需要保存在類裡面。 向一個類的消費者顯示出介面實際是“類流覽器”的工作。 這種工具能查找所有可用的類, 總結出可對它們採取的全部操作(比如可以使用哪些成員等), 並用一種清爽悅目的形式顯示出來。 到大家讀到這本書的時候, 所有優秀的Java 開發工具都應推出了自己的流覽器。

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示