首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 封裝核心觀念與實戰:資料隱藏、介面控制與維護優勢

     編輯:Java 相關知識

封裝是物件導向的基石,將資料與操作綁定、隱藏內部細節、對外暴露受控介面。本文透過 Husband/Wife 範例,說明封裝三大優勢:降低耦合、內部實作可自由修改、精確控制欄位存取,並示範 setter/getter 進階用法。

封裝基本結構

public class Husband {
    private String name;
    private String sex;
    private int age;
    private Wife wife;  // 無 getter,隱私保護

    // 對外介面
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    // ... 其他 getter/setter
}

三大核心優勢

1. 降低耦合

外部程式只依賴公開介面,不依賴內部實作細節。

2. 內部實作可自由修改

將 age 從 int 改為 String:

private String age;
public void setAge(int age) { this.age = String.valueOf(age); }  // 內部轉換
public String getAge() { return age; }

呼叫端 husband.setAge(22) 完全不需變動。

3. 精確控制欄位存取(驗證與轉換)

輸入驗證(setter)

public void setAge(int age) {
    if (age > 120) {
        System.out.println("ERROR: 年齡異常");
    } else {
        this.age = age;
    }
}

輸出轉換(getter)

// 資料庫存 0/1,前台顯示 男/女
public String getSexName() {
    return "1".equals(sex) ? "男" : "0".equals(sex) ? "女" : "未知";
}

// 狀態對應操作連結
public String getCzHTML() {
    return "1".equals(zt)
        ? "啟用"
        : "禁用";
}

封裝比喻:房子與門窗

  • 私有欄位 = 房內裝潢(沙發、電視),不想讓人隨意翻動。
  • 公開介面 = 門窗,讓訪客透過規定管道觀賞/互動。
  • 無門窗 = 黑盒子,毫無價值;無牆 = 隱私全無。

總結

封裝不只是「加上 private 再產生 getter/setter」,而是設計受控介面,在保護資料完整性的同時,賦予系統彈性應對變更的能力。良好的封裝是低耦合、高內聚系統的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved