java隱藏實施過程

來源:互聯網
上載者:User

“進行物件導向的設計時,一項基本的考慮是:如何將發生變化的東西與保持不變的東西分隔開。”

這一點對於庫來說是特別重要的。那個庫的使用者(客戶程式員)必須能依賴自己使用的那一部分,並知道一旦新版本的庫出台,自己不需要改寫代碼。而與此相反,庫的建立者必須能自由地進行修改與改進,同時保證客戶程式員代碼不會受到那些變動的影響。

為達到這個目的,需遵守一定的約定或規則。例如,庫程式員在修改庫內的一個類時,必須保證不刪除已有的方法,因為那樣做會造成客戶程式員代碼出現斷點。然而,相反的情況卻是令人痛苦的。對於一個資料成員,庫的建立者怎樣才能知道哪些資料成員已受到客戶程式員的訪問呢?若方法屬於某個類唯一的一部分,而且並不一定由客戶程式員直接使用,那麼這種痛苦的情況同樣是真實的。如果庫的建立者想刪除一種舊有的實施方案,共置入新代碼,此時又該怎麼辦呢?對那些成員進行的任何改動都可能中斷客戶程式員的代碼。所以庫建立者處在一個尷尬的境地,似乎根本動彈不得。

為解決這個問題,Java推出了“訪問指示符”的概念,允許庫建立者聲明哪些東西是客戶程式員可以使用的,哪些是不可使用的。這種存取控制的層級在“最大訪問”和“最小訪問”的範圍之間,分別包括:public,“友好的”(無關鍵字),protected以及private。根據前一段的描述,大家或許已總結出作為一名庫設計者,應將所有東西都儘可能保持為“private”(私人),並只展示出那些想讓客戶程式員使用的方法。這種思路是完全正確的,儘管它有點兒違背那些用其他語言(特別是C)編程的人的直覺,那些人習慣於在沒有任何限制的情況下訪問所有東西。到這一章結束時,大家應該可以深刻體會到Java存取控制的價值。

然而,組件庫以及控制誰能訪問那個庫的組件的概念現在仍不是完整的。仍存在這樣一個問題:如何將組件綁定到單獨一個統一的庫單元裡。這是通過Java的package(打包)關鍵字來實現的,而且訪問指示符要受到類在相同的包還是在不同的包裡的影響。所以在本章的開頭,大家首先要學習庫組件如何置入包裡。這樣才能理解訪問指示符的完整含義。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.