1. 程式人生 > 實用技巧 >Java面向物件(02)--封裝

Java面向物件(02)--封裝

Java面向物件(02)--封裝

封裝簡介

在面向物件程式設計方法中,封裝(英語:Encapsulation)是指一種將抽象性函式介面的實現細節部分包裝、隱藏起來的方法。

封裝可以被認為是一個保護屏障,防止該類的程式碼和資料被外部類定義的程式碼隨機訪問。

高內聚,低耦合:

  • 高內聚:類的內部資料操作細節自己完成,不允許外部干涉;
  • 低耦合:僅暴露少量的方法給外部使用

封裝的優點

  • 良好的封裝能夠減少耦合。
  • 類內部的結構可以自由修改。
  • 可以對成員變數進行更精確的控制。
  • 隱藏資訊,實現細節。

封裝案例

  1. 修改屬性的可見性來限制對屬性的訪問(一般限制為private),例如:

    public class Person {
        private String name;
        private int age;
    }
    

    這段程式碼中,將 nameage 屬性設定為私有的,只能本類才能訪問,其他類都訪問不了,如此就對資訊進行了隱藏。

  2. 對每個值屬性提供對外的公共方法訪問,也就是建立一對賦取值方法,用於對私有屬性的訪問,例如:

    public class Person{
        private String name;
        private int age;
    
        public int getAge(){
          return age;
        }
    
        public String getName(){
          return name;
        }
    
        public void setAge(int age){
          this.age = age;
        }
    
        public void setName(String name){
          this.name = name;
        }
    }
    

    採用 this 關鍵字是為了解決例項變數private String name和區域性變數setName(String name)中的name變數之間發生的同名的衝突