| 類型 | 規則 | 範例 |
| 一般類別 | 名詞,UpperCamelCase | User、OrderService |
| 異常類別 | 以 Exception 結尾 | BusinessException、DataNotFoundException |
| 介面 | 名詞或形容詞,UpperCamelCase,常用 -able/-ible 後綴 | Serializable、Runnable、UserRepository |
四、常數命名
- 全大寫,單詞以底線分隔
- 語意完整:
MAX_CONNECTION_POOL_SIZE、DEFAULT_TIMEOUT_MILLIS
- 修飾符:
static final
五、變數命名
5.1 一般變數
- lowerCamelCase
- 簡短且具體:
userName、orderCount、isActive
- 集合類型建議加複數:
userList、idSet
5.2 慣用暫時變數
- 迴圈計數器:
i、j、k
- 字元:
c、ch
- 範圍極小、生命週期極短的臨時變數
六、方法命名
- lowerCamelCase
- 首詞為動詞:
getUserById、calculateTotal、isValid
- Getter/Setter:
getXxx/setXxx,布林型可用 isXxx
七、方法參數命名
- 同一般變數規則
- 優先與對應欄位同名,配合
this.field = field 區分
補充:進階命名慣例
1. 統一識別符風格
// 類別
public class OrderServiceImpl implements OrderService { }
// 方法/欄位/參數/區域變數
private List orderList;
public void processOrder(Order order) { }
for (int i = 0; i < orderList.size(); i++) { }
2. 套件匯入順序
package com.company.project.module;
import java.io.*;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Service;
import com.company.project.common.util.StringUtils;
import com.company.project.module.entity.Order;
- java/javax 標準庫優先
- 第三方庫其次
- 本地專案包最後
- 同組織內按字母序
3. 介面命名慣例
- 能力型介面:
Comparable、Runnable、Serializable
- 服務型介面:
UserService、OrderRepository(不加 I 前綴)
4. 元件命名(GUI/元件導向)
- 完整描述 + 元件類型後綴
okButton、userTable、fileMenu、passwordField
5. 類別常用方法命名模式
| 方法類型 | 前綴 | 範例 |
| 獲取器 | get | getName()、getCreatedAt() |
| 布林判斷 | is / has / can | isActive()、hasPermission()、canExecute() |
| 設定器 | set | setName()、setEnabled() |
| 業務動作 | 動詞 | openFile()、addItem()、submitOrder() |
| 建構子 | 參數遞增 | Order()、Order(id)、Order(id, items) |
| toString | 固定 | public String toString() { ... } |
| main 測試 | 類底部 | public static void main(String[] args) { ... } |
6. 靜態常數欄位
- 全大寫 + 底線:
MIN_BALANCE、DEFAULT_DATE_FORMAT
7. 迴圈與陣列命名
- 計數器:
i、j、k 或 index
- 陣列:
int[] numbers、byte[] buffer、User[] users
總結:好名字的三個標準
- 可讀性:不需註解即可理解用途
- 可搜尋性:避免單字母、通用詞,便於 IDE 全域搜尋
- 一致性:專案內統一風格,配合工具強制檢查
「命名是軟體開發中最困難的兩件事之一(另一個是快取失效與 off-by-one 錯誤)。」—— Phil Karlton
- 上一篇文章: Java 讀取屬性檔的 7 種方式完整指南:從標準 API 到第三方庫
- 下一篇文章: Java String 核心方法大全:獲取、判斷、轉換、替換、切割、子串、比較實戰指南
Copyright ©
程式碼之家 All Rights Reserved