在 Java 開發中,良好的命名規範是程式碼可讀性、可維護性與團隊協作的基石。Java 作為一門強型別、面向物件的語言,其命名慣例直接影響程式碼的專業度。本文系統整理 Java 核心命名規範,涵蓋套件、類別、介面、變數、常數、方法、Javadoc 註解等各層面,並提供實務應用範例,助你撰寫更優雅、規範的程式碼。
com.company.project),確保全域唯一性採用標準分層架構時,建議採用「域名反寫 + 業務模組 + 技術層」的三級結構:
com.company.user // 用戶模組根套件
com.company.user.dao // 資料存取層
com.company.user.service // 業務邏輯層
com.company.user.web // 控制層
com.company.user.entity // 實體類別
Impl 後綴區分介面:UserService / UserServiceImplUser、Order| 層級 | 介面命名 | 實現類命名 |
|---|---|---|
| DAO 層 | UserDao | UserDaoImpl |
| Service 層 | UserService | UserServiceImpl |
| Web 層 | — | UserController / UserAction |
Serializable、Runnable、Comparablei、j、k 除外)is、has、can 開頭:isActive、hasPermissionuserList、orderSetMAX_CONNECTION_COUNT、DEFAULT_PAGE_SIZEstatic final 修飾getUserById、calculateTotalAmount| 層級 | 命名前綴 | 說明 | 範例 |
|---|---|---|---|
| DAO 層 | insert / delete / update / select / count | 僅限資料存取操作 | insertUser、selectById |
| Service 層 | add / remove / modify / query / check | 表達業務語意,避免 Web 層詞彙 | addUser、checkEmailExists |
| Web 層 | register / login / logout / submit | 貼近 HTTP 動作語意 | register、login |
get + 屬性名(首字母大寫),布林型可用 is 開頭set + 屬性名(首字母大寫)Javadoc 註解以 /** 開頭、*/ 結束,可自動生成 API 文件。建議對以下元素撰寫:
@param)、返回值(@return)、拋出異常(@throws)/**
* 用戶服務介面,提供用戶相關業務操作
*
* @author Zhang San
* @version 1.0
* @since 2024-01-15
*/
public interface UserService {
/**
* 根據 ID 查詢用戶
*
* @param userId 用戶唯一標識
* @return 用戶實體,不存在時返回 null
* @throws BusinessException 業務異常
*/
User getUserById(Long userId) throws BusinessException;
}
| 檔案類型 | 命名規則 | 範例 |
|---|---|---|
| JSP 頁面 | 全小寫 + 底線,模組_操作.jsp | user_list.jsp、order_detail.jsp |
| Java 原始檔 | 與 public 類別名完全一致 | UserService.java |
| 配置檔 | 小寫 + 連字符,功能描述 | application-dev.yml、logback-spring.xml |
記住:程式碼是給人看的,順便給機器執行。規範的命名是對未來維護者(包含未來的自己)最大的善意。