前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java编程规范-命名与语句

Java编程规范-命名与语句

作者头像
向着百万年薪努力的小赵
发布2022-12-01 08:17:50
4360
发布2022-12-01 08:17:50
举报
文章被收录于专栏:小赵的Java学习

命名

建议按照此规范处理 UpperCamelCase 风格:每个单词首字母大写,其余字母小写; lowerCamelCase 风格:首单词全小写,后面每单词首字母大写,其余字母小写; 示例: 【错误用法】

代码语言:javascript
复制
userinfo 
nowCustomerID 

【正确用法】

代码语言:javascript
复制
UserInfo        /* UpperCamelCase */ 
nowCustomerId   /* lowerCamelCase */ 

1包 按照此规范处理 包名全部小写,连续的单词使用 ’ . ’ 连接起来,不使用下划线。 示例: 【正确用法】

代码语言:javascript
复制
package com.dtdream.net ; 
package com.dtdream.topo ; 

2类和接口 按照此规范处理 类名和接口名采用 UpperCamelCase 风格。 枚举类型也是一种类,对普通类名的要求适用于枚举类名,另外要求枚举的定义全大写,每个定义占一行。 示例: 【正确用法】

代码语言:javascript
复制
public class UserInfo { 
    ... 
} 
  
public enum MyColor { 
    RED, 
    YELLOW, 
    BLUE; 
} 

3方法 按照此规范处理 1、方法 名采用 lowerCamelCase 风格; 示例: 【正确用法】

代码语言:javascript
复制
public String getUsrName () { 
    return usrName; 
} 
  
public void setUsrName (String usrName) { 
    this.usrName = usrName; 
} 
  
public String getType (); 
public boolean isFinished (); 
public void setVisiable (boolean isVisiable); 
public void show (); 
public void addKeyListener (Listener listener); 

4变量 按照此规范处理, 变量名采用 lowerCamelCase 风格。 类中布尔类型的变量名 不要加 is 前缀,否则部分框架解析会引起序列化错误。 示例 : 【正确用法】

代码语言:javascript
复制
public class UsrInfo { 
    private String usrName ; 
    private int usrCnt = 0; 
    private Map<int, String> usrInfoMap = new HashMap<>(); 
    ... 
    public String getUsrName(int usrIndex ) { 
        int usrAge ; 
        ... 
} 
} 

5常量 按照此规范处理 常量名命名格式为 CONSTANT_CASE ,全部字母大写,用下划线分隔单词,使用 static final 修饰。 注: 常量是一个 static final 字段,但并非所有的 static final 字段都是常量。 示例: 【 错误用法】

代码语言:javascript
复制
private static final Logger LOGGER = getLogger(); 
private static final int usrMaxCnt = 1024; 
private static final String serverIpAddress = "xx.xx.xx.xx"; 

【正确用法】

代码语言:javascript
复制
/* log 句柄是 static final 类型,但却并非是一个常量 */ 
private static final Logger log = getLogger(); 
private static final int MAX_USER_CNT = 1024; 
private static final String SERVER_IP_ADDRESS = "xx.xx.xx.xx"; 

6约束 建议按照此规范处理 为了使代码清晰易懂,类、方法、变量命名应遵循如下约束:

  1. 命名 不能 以 下划线或美元符号 开始,也不能以 下划线或美元符号 结束;
  2. 命名 不允许 使用 中文汉字 ;
  3. 为了达到代码自解释的目标,尽量使用完整的单词组合来表达其含意;
  4. Service/DAO 层方法命名规约: a. 获取单个对象的方法用 get 作前缀 ; b. 获取多个对象的方法用 list 作前缀 ; c. 获取统计值的方法用 count 作前缀 ; d. 插入的方法用 save/insert 作前缀 ; e. 删除的方法用 remove/delete 作前缀 ; f. 修改的方法用 modify/update 作前缀 ; 示例: 【错误用法】
代码语言:javascript
复制
String _name ; 
String $name ; 
String name_ ; 
String name$ ; 
  
int 某变量 = 3 ; 

【正确用法】

代码语言:javascript
复制
从远程仓库拉取代码的类命名为 PullCodeFromRemoteRepository 

语句

1每行最多包含一条语句 建议按照此规范处理 避免将多个短语写在一行,即一行最多只写一条语句。 示例: 【错误用法】

代码语言:javascript
复制
a = funA(); b = funB(); 

【正确用法】

代码语言:javascript
复制
a = funA(); 
b = funB(); 

2import 不要使用通配符 按照此规范处理 import 语句不要使用通配符 ‘*’ 。 示例: 【 错误用法】

代码语言:javascript
复制
import java.util. * ;

【正确用法】

代码语言:javascript
复制
import java.util.Map; 
import java.util.HashMap; 
import java.util.List; 
import java.util.ArrayList; 

3if-else 语句 按照此规范处理 1、if、else分支代码用大括号 {} 包围, else 与 if 的右大括号位于同一行,使用空格分开; 示例: 【 错误用法】

代码语言:javascript
复制
if (condition) statement; 

【正确用法】

代码语言:javascript
复制
if (condition) { 
    statement; 
} else if (condition) { 
    statement; 
} else { 
    statement; 
} 

2、为提高代码可读性,便于理解,应保持判断方向与条件方向一致; 示例: 【错误用法】 判断方向为反向,但条件方向为正向,两者不一致

代码语言:javascript
复制
/* 反向判断 */ 
if (!isInvalidUsrName(usrName)) { 
    /* 名字有效时进入,条件方向为正向 */ 
    ... 
} 

【正确用法】 判断方向和条件方向均为正向,两者一致

代码语言:javascript
复制
/* 正向判断 */ 
if (isValidUsrName(usrName)) { 
    /* 名字有效时进入,条件方向为正向 */ 
   ... 
} 

3、除常用方法(如 getXxx/isXxx) 外,不要在条件判断中执行其它复杂的语句,将复杂逻辑判断的结果赋值给一个有意义的布尔变量名,以提高可读性 ; 示例: 【错误用法】

代码语言:javascript
复制
if ((file.open(fileName, "w") != null) && (...) || (...)) { 
   ... 
} 

【正确用法】

代码语言:javascript
复制
final boolean existed = (file.open(fileName, "w") != null) && (...) || (...); 
if (existed) { 
    ... 
} 

4for 语句 按照此规范处理

for语句作用范围代码用大括号{}包围。 示例: 【正确用法】

代码语言:javascript
复制
for (int i = 0; i < 10; i++) { 
    doSomething(); 
} 
  
List<String> usrNameList; 
for (String usrName : usrNameList) { 
    doSomething(); 
} 

5while 语句 while语句作用范围代码用大括号{}包围。 示例: 【正确用法】

代码语言:javascript
复制
while (hasNext()) { 
    doSomething(); 
} 

6do-while 语句 按照此规范处理 1、do 语句作用范围代码用大括号 {} 包围; 2、while 语句与 do 的右大括号位于同一行,中间用空格分开。 示例: 【正确用法】

代码语言:javascript
复制
do { 
    doSomething(); 
} while (hasNext()); 

7switch-case 语句 1、switch 作用范围代码使用大括号 {} 包围, case 分支可以不使用大括号 {} 包围; 2、case 分支较 switch 语句缩进 4 个空格; 3、case 分支不应包含大段代码,如分支功能复杂,建议封装函数; 4、如果 case 分支中不需要 break ,且这个 case 包含语句,在应该出现 break 的地方增加一条注释说明此情况,注释内容为 " /* fall-through */ " ; 5、必须有 default 分支; 示例: 【正确用法】

代码语言:javascript
复制
switch (iType) { 
    case TYPE_ONE: 
    case TYPE_TWO: 
        doSomething(); 
        /* fall-through */ 
    case TYPE_THREE: 
        doSomething(); 
        break; 
    default: 
        doSomething(); 
    break; 
} 

8try-catch 语句 按照此规范处理 1、try 、catch 、finally 语句作用范围代码使用大括号 {} 包围; 2、catch 语句与 try 的右大括号位于同一行,中间用空格隔开; 3、如果有 finally 分支, finally 语句与 try 或 catch 的右大括号位于同一行,中间用空格隔开; 示例: 【正确用法】

代码语言:javascript
复制
try { 
    doSomething(); 
} catch (Exception e) { 
    handleException(e); 
} finally { 
    ... 
} 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-06-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 命名
  • 语句
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档