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

Java 教學(二):套件與命名空間管理

     編輯:Java 相關知識

為什麼需要套件?

Java 專案包含大量類別,若全部放在預設套件(無 package 宣告)會導致:

  • 類別名稱衝突(同名類別無法共存)
  • 難以依功能模組組織程式碼
  • 無法有效運用存取修飾詞(protected、default)進行權限控制

套件宣告語法

package com.csst.db; // 必須為源碼第一行非註解語句

public class CustomerDAO { }
  • 編譯後 .class 檔案置於 com/csst/db/ 目錄樹。
  • 套件名稱即為完整類別名稱的一部分:com.csst.db.CustomerDAO。

跨套件使用類別

方式一:完整類別名稱(FQCN)

package com.csst.service;

class CustomerService {
    private com.csst.db.CustomerDAO dao; // 每次皆需寫全名
}

方式二:import 單一類別(推薦)

package com.csst.service;

import com.csst.db.CustomerDAO;

public class CustomerService {
    private CustomerDAO dao; // 簡潔
}

方式三:import 通配符(慎用)

import com.csst.db.*; // 匯入該套件所有類別

缺點:編譯速度稍慢、易造成名稱衝突、IDE 自動完成雜訊多。

套件命名慣例

完整範例:com.csst.service.controller

套件與存取權限的關係

層級慣例範例
頂層反轉公司網域com.csst、org.apache、io.github
功能模組小寫單詞db、service、web、util
子模組小寫單詞dao、controller、model
修飾詞同類同套件子類(不同套件)無關類(不同套件)
public✓✓✓✓
protected✓✓✓✗
default (package-private)✓✓✗✗
private✓✗✗✗

善用套件劃分 + default/protected,可實現「模組內可見、模組外不可見」的封裝邊界。

編譯與執行指令

# 編譯
javac -d ./classes -sourcepath ./src com/csst/db/CustomerDAO.java

# 執行 (需在 classes 根目錄)
java com.csst.service.CustomerService

結語

套件是 Java 管理大型程式碼庫的核心機制。遵循「網域反轉 + 功能模組」命名慣例,配合 import 與存取修飾詞,即可構建清晰、可維護、可擴充的專案架構。

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