<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Java 中的封裝 > 原文: [https://beginnersbook.com/2013/05/encapsulation-in-java/](https://beginnersbook.com/2013/05/encapsulation-in-java/) 封裝只是意味著將對象狀態(字段)和行為(方法)綁定在一起。如果您正在創建類,那么您正在進行封裝。在本指南中,我們將看到如何在 java 程序中進行封裝,如果您正在尋找封裝的真實示例,請參考本指南:[使用現實示例](https://beginnersbook.com/2013/03/oops-in-java-encapsulation-inheritance-polymorphism-abstraction/)解釋的 OOP 功能。 > 對于其他 OOP 主題,如[繼承](https://beginnersbook.com/2013/03/inheritance-in-java/)和[多態](https://beginnersbook.com/2013/03/polymorphism-in-java/),請參考 [OOPs 概念](https://beginnersbook.com/2013/04/oops-concepts/) 讓我們回到主題。 ## 什么是封裝? 封裝背后的整個想法是隱藏用戶的實現細節。如果數據成員是私有的,則意味著它只能在同一個類中訪問。沒有外部類可以訪問其他類的私有數據成員(變量)。 但是,如果我們設置公共獲取器和設置器方法來更新(例如`void setSSN(int ssn)`)和讀取(例如`int getSSN()`)私有數據字段,那么外部類可以通過公共方法訪問這些私有數據字段。 這樣,數據只能通過公共方法訪問,從而使私有字段及其實現對外部類隱藏。這就是封裝被稱為**數據隱藏的原因。** 讓我們看一個例子來更好地理解這個概念。 ## Java 中的封裝示例 如何在 java 中實現封裝: 1)將實例變量設為私有,以便不能直接從類外部訪問它們。您只能通過類的方法設置和獲取這些變量的值。 2)在類中使用獲取器和設置器方法來設置和獲取字段的值。 ```java class EncapsulationDemo{ private int ssn; private String empName; private int empAge; //Getter and Setter methods public int getEmpSSN(){ return ssn; } public String getEmpName(){ return empName; } public int getEmpAge(){ return empAge; } public void setEmpAge(int newValue){ empAge = newValue; } public void setEmpName(String newValue){ empName = newValue; } public void setEmpSSN(int newValue){ ssn = newValue; } } public class EncapsTest{ public static void main(String args[]){ EncapsulationDemo obj = new EncapsulationDemo(); obj.setEmpName("Mario"); obj.setEmpAge(32); obj.setEmpSSN(112233); System.out.println("Employee Name: " + obj.getEmpName()); System.out.println("Employee SSN: " + obj.getEmpSSN()); System.out.println("Employee Age: " + obj.getEmpAge()); } } ``` **輸出:** ```java Employee Name: Mario Employee SSN: 112233 Employee Age: 32 ``` 在上面的示例中,所有三個數據成員(或數據字段)都是私有的(請參閱: [Java 中的訪問修飾符](https://beginnersbook.com/2013/05/java-access-modifiers/)),無法直接訪問。這些字段只能通過公共方法訪問。字段`empName`,`ssn`和`empAge`使用 OOP 的封裝技術制作隱藏數據字段。 ## 封裝的優點 1. 它提高了可維護性和靈活性以及可重用性:例如,在上面的代碼中,`void setEmpName(String name)`和`String getEmpName()`的實現代碼可以在任何時間點改變。由于實現純粹是為外部類隱藏的,因此它們仍將使用相同的方法(`setEmpName(String name)`和`getEmpName()`)訪問私有字段`empName`。因此,可以在任何時間點維護代碼,而不會破壞使用代碼的類。這提高了底層類的可重用性。 2. 這些字段可以是只讀的(如果我們沒有在類中定義設置器方法)或只寫(如果我們沒有在類中定義獲取器方法)。對于例如如果我們有一個我們不想改變的字段(或變量),那么我們只需將變量定義為`private`而不是設置器和獲取器兩者,我們只需要為該變量定義獲取器方法。由于設置器方法不存在,外部類無法修改該字段的值。 3. 用戶不會知道幕后發生了什么。他們只知道要更新字段調用集方法并讀取字段調用獲取器方法,但這些設置器和獲取器 方法正在做的事情純粹是對它們隱藏的。 封裝也稱為“**數據隱藏**”。
                  <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>

                              哎呀哎呀视频在线观看