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

Java 入門進階:深入理解封裝、包管理與內部類

     編輯:Java 綜合教學

Java 面向對象核心:封裝機制詳解

在 Java 面向對象的三大特性——封裝、繼承、多態中,封裝是基石。它將類的內部實現細節隱藏起來,僅通過公開的方法提供受控的訪問,確保數據安全與代码可維護性。

什麼是封裝?

核心概念:將類的屬性私有化,不允許外部直接訪問,而是通過該類提供的公共方法來操作和訪問隱藏信息。

主要好處:

  • 數據訪問受控:只能通過規定的方法訪問數據,可在方法中加入邏輯驗證。
  • 隱藏實現細節:類的內部結構變更不影響外部調用,便於維護與擴展。

封裝的實現步驟

標準封裝流程包括:將屬性聲明為 private、提供公共的 getter/setter 方法、在方法中添加業務邏輯驗證。

封裝實現步驟圖解

包機制:管理類的命名空間

包的作用

  • 組織管理 Java 文件,避免類名衝突。
  • 解決同名文件衝突,構建層次化命名空間。

定義與使用包

聲明語法: package 包名; 必須放在源文件第一行。包名採用全小寫,層級用點號分隔,如 com.imooc.music。

常見系統包:

  • java.lang:語言基礎類
  • java.util:工具類集合
  • java.io:輸入輸出功能

導入類: 使用 import 關鍵字,支援單類導入或通配符導入(如 com.imooc.*)。

訪問修飾符:控制可見性

四種修飾符由低到高控制訪問範圍:

  • private:僅本類可見(如錢鎖在保險櫃)
  • default(包私有):同包可見(同屋檐下)
  • protected:同包 + 子類可見(有關係的人)
  • public:所有類可見(所有人)

this 關鍵字與 IDE 自動生成

this 代表當前對象,常用於區分同名參數與屬性。Eclipse 等 IDE 提供 Source → Generate Getters and Setters 功能,可自動生成規範的存取方法,提升開發效率。

Eclipse 生成 Getter/Setter 步驟1 Eclipse 生成 Getter/Setter 步驟2 this 關鍵字避免變量衝突示例

內部類:更深層的封裝

核心作用

  • 提供更好的封裝,隱藏在外部類內部,同包其他類不可直接訪問。
  • 內部類方法可直接訪問外部類所有成員(含私有)。
  • 實現邏輯內聚,代碼組織更清晰。

四種類型

  1. 成員內部類:最常見,定義在類內部、方法外部。
  2. 靜態內部類:用 static 修飾,不依賴外部類實例。
  3. 方法內部類:定義在方法內,僅在方法內可見。
  4. 匿名內部類:無名類,常用於事件監聽等場景。

成員內部類關鍵特性

  • 可使用任意訪問修飾符。
  • 可直接訪問外部類私有成員。
  • 創建語法:外部類對象.new 內部類()。
  • 編譯產生 外部類名$內部類名.class 文件。
內部類示例代碼 成員內部類代碼示例 運行結果 編譯生成的 class 文件

外部類訪問內部類成員

外部類不能直接訪問內部類成員,需先創建內部類對象再調用。若同名成員衝突,內部類默認訪問自身,需用 外部類名.this.成員 訪問外部類成員。

外部類直接訪問內部類報錯 正確訪問方式 同名成員訪問演示 運行結果

靜態內部類特點

  • 無法直接訪問外部類非靜態成員,需通過外部類實例訪問。
  • 創建對象無需外部類實例:new 靜態內部類()。
  • 同名靜態成員用 外部類名.成員 區分。
靜態內部類代碼 運行結果 進一步探究代碼 探究結果

方法內部類限制

定義在方法內,僅方法內可見。不能使用訪問修飾符和 static 修飾符。

方法內部類代碼示例
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved