<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## [接口和實現](https://lingcoder.gitee.io/onjava8/#/book/07-Implementation-Hiding?id=%e6%8e%a5%e5%8f%a3%e5%92%8c%e5%ae%9e%e7%8e%b0) 訪問控制通常被稱為*隱藏實現*(implementation hiding)。將數據和方法包裝進類中并把具體實現隱藏被稱作是*封裝*(encapsulation)。其結果就是一個同時帶有特征和行為的數據類型。 出于兩個重要的原因,訪問控制在數據類型內部劃定了邊界。第一個原因是確立客戶端程序員可以使用和不能使用的邊界。可以在結構中建立自己的內部機制而不必擔心客戶端程序員偶爾將內部實現作為他們可以使用的接口的一部分。 這直接引出了第二個原因:將接口與實現分離。如果在一組程序中使用接口,而客戶端程序員只能向**public**接口發送消息的話,那么就可以自由地修改任何不是**public**的事物(例如包訪問權限,protected,或 private 修飾的事物),卻不會破壞客戶端代碼。 為了清晰起見,你可以采用一種創建類的風格:**public**成員放在類的開頭,接著是**protected**成員,包訪問權限成員,最后是**private**成員。這么做的好處是類的使用者可以從頭讀起,首先會看到對他們而言最重要的部分(public 成員,因為可以從文件外訪問它們),直到遇到非**public**成員時停止閱讀,下面就是內部實現了: ~~~ // hiding/OrganizedByAccess.java public class OrganizedByAccess { public void pub1() {/* ... */} public void pub2() {/* ... */} public void pub3() {/* ... */} private void priv1() {/* ... */} private void priv2() {/* ... */} private void priv3() {/* ... */} private int i; // ... } ~~~ 這么做只能是程序閱讀起來稍微容易一些,因為實現和接口還是混合在一起。也就是說,你仍然能看到源代碼——實現部分,因為它就在類中。另外,javadoc 提供的注釋文檔功能降低了程序代碼的可讀性對客戶端程序員的重要性。將接口展現給類的使用者實際上是類瀏覽器的任務,類瀏覽器會展示所有可用的類,并告訴你如何使用它們(比如說哪些成員可用)。在 Java 中,JDK 文檔起到了類瀏覽器的作用。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看