一、代码行长度和折行规则
1、java的代码行长度应该小于80个字符
2、折行规则:
(1)在逗号后折行
(2)在运算符前折行
(3)高层折行优于低层折行(即优先考虑折断高层语句,而维护低层语句的完整性)
(4)折下的代码行应该与其同等级的代码行左对齐
二、程序注释
1、程序注释包括块注释和行注释;
2、块注释:
(1)常用于提供文件,方法,数据结构,变量的意义与用途,以及算法的描述
(2)常位于一个文件或者一个方法的前面
(3)一个块注释之前一般有一个空白行用于做区分代码与注释的边界
3、行注释:
(1)分为:单独行注释,行尾注释,行头注释。但都在同一行中
(2)单独行注释:单起一行,书写注释信息。如果单行难以完成注释信息,应使用块注释
(3)行尾注释:行尾注释紧跟在这一行代码之后进行注释。为了代码清晰,我们一般采用“代码+Tab键+行尾注释”
(4)行头注释:用来注释代码的,使代码失去意义
三、变量的声明初始化与放置
1、变量的声明
(1)一般情况下,建议每一行代码,声明一个变量
2、变量初始化:
尽量在变量声明的地方初始化,如果变量与计算或处理后的值有关,则在取得这个值之后初始化
3、变量放置:
尽量把变量的声明放在代码块开始处(代码块指用{}括起来的代码段),不要等到使用变量时再声明它,这样会降低代码的可读性和便携性
避免低层声明和高层声明的重复,这样会引发代码混乱并可能引发程序功能错误
四、程序语句编写
1、简单语句
2、复合语句:
(1)分支语句:
if(condition) {
statements;
}
if(condition){
statements;
} else{
statements;
}
if(condition){
statements;
} else if (condition){
statements;
} else{
statements;
}
(2)循环语句:
不建议在循环语句中做过多的初始化操作,例如这种情况是不可取的:for(varivale = 0, varivale2 = 1,...,variablen = n;condition;update)
for循环语句的死循环书写方式如下:
for(;;){
statements;
}
(3)异常处理(try-catch)语句
try-catch 结构异常处理:try-catch-finally 结构异常处理
五、空格与空行的应用规则
1、空格的应用规则:
(1)空格一般用于关键字与括号之间
while (contition){
statements;
}
注意:方法名称与左括号之间不应该用空格分开,好处是可以清楚地区分方法调用的关键字
(2)一般在方法的参数列表中的逗号后面插入空格
(3)数学算式的操作数与运算符之间应该插入空格(二进制运算与一元运算除外)
(4)强制类型转换语句中的强制类型的右括号与表达式之间应该用逗号隔开。
2、空行的应用规则
(1)在两个方法间
(2)方法内部的本地变量与第一个语句之间
(3)块注释与单行注释之前
(4)方法内部的逻辑片段之间
(5)同一源文件的两个代码片段之间,或者在同一源文件的类与接口的定义之间可以插入两行空白行
六、方法、变量与常量的命名规则
1、方法的命名规则:
(1)方法一般来说都是动词,第一个字母小写,多个单词混合的情况下,第一个单词后的所有单词的第一个字母大写,其余字母小写
(2)方法的声明部分,通常要对方法功能提供描述,以及方法中返回值与参数的说明
2、变量的命名规则:
变量的第一个字母即使系统允许,也不要为_,或者$.
单字符的变量名应该尽量避免,除非临时变量。
3、常量的命名方法
常量一般采用大写字母单词命名,单词与单词之间用下划线加以分隔
例如:static final int MAN_WINDTH = 4;
七、编程实践
1、引用类中的静态变量与方法的规则:
不用通过类的实例对象引用静态变量和静态方法,即使这是允许的。而应该通过类来引用。
2、变量的赋值规则
尽量避免在一个单行中将一个值赋给多个变量。
尽量避免对一元表达式赋值,如:i++ = m++
尽量避免嵌套赋值,会浪费编译器较多时间,如:d = ( a = b + c) + r;
应修改为:
a = b + c;
d = a + r;
3、括号规则:
尽量使用()来界定表达式的结合顺序,避免由于运算符优先级问题导致非主观意图错误。
if(i == j && m == n) //应尽量避免
if((i == j ) && ( m == n)) // 正确
4、返回值规范:
if (isTrue){
return true;
} else {
return false;
}
应改为: return isTrue;
if (condition) {
return x;
}
return y;
应改为:
return (condition ? x : y);
1、java的代码行长度应该小于80个字符
2、折行规则:
(1)在逗号后折行
(2)在运算符前折行
(3)高层折行优于低层折行(即优先考虑折断高层语句,而维护低层语句的完整性)
(4)折下的代码行应该与其同等级的代码行左对齐
二、程序注释
1、程序注释包括块注释和行注释;
2、块注释:
(1)常用于提供文件,方法,数据结构,变量的意义与用途,以及算法的描述
(2)常位于一个文件或者一个方法的前面
(3)一个块注释之前一般有一个空白行用于做区分代码与注释的边界
3、行注释:
(1)分为:单独行注释,行尾注释,行头注释。但都在同一行中
(2)单独行注释:单起一行,书写注释信息。如果单行难以完成注释信息,应使用块注释
(3)行尾注释:行尾注释紧跟在这一行代码之后进行注释。为了代码清晰,我们一般采用“代码+Tab键+行尾注释”
(4)行头注释:用来注释代码的,使代码失去意义
三、变量的声明初始化与放置
1、变量的声明
(1)一般情况下,建议每一行代码,声明一个变量
2、变量初始化:
尽量在变量声明的地方初始化,如果变量与计算或处理后的值有关,则在取得这个值之后初始化
3、变量放置:
尽量把变量的声明放在代码块开始处(代码块指用{}括起来的代码段),不要等到使用变量时再声明它,这样会降低代码的可读性和便携性
避免低层声明和高层声明的重复,这样会引发代码混乱并可能引发程序功能错误
四、程序语句编写
1、简单语句
2、复合语句:
(1)分支语句:
if(condition) {
statements;
}
if(condition){
statements;
} else{
statements;
}
if(condition){
statements;
} else if (condition){
statements;
} else{
statements;
}
(2)循环语句:
不建议在循环语句中做过多的初始化操作,例如这种情况是不可取的:for(varivale = 0, varivale2 = 1,...,variablen = n;condition;update)
for循环语句的死循环书写方式如下:
for(;;){
statements;
}
(3)异常处理(try-catch)语句
try-catch 结构异常处理:try-catch-finally 结构异常处理
五、空格与空行的应用规则
1、空格的应用规则:
(1)空格一般用于关键字与括号之间
while (contition){
statements;
}
注意:方法名称与左括号之间不应该用空格分开,好处是可以清楚地区分方法调用的关键字
(2)一般在方法的参数列表中的逗号后面插入空格
(3)数学算式的操作数与运算符之间应该插入空格(二进制运算与一元运算除外)
(4)强制类型转换语句中的强制类型的右括号与表达式之间应该用逗号隔开。
2、空行的应用规则
(1)在两个方法间
(2)方法内部的本地变量与第一个语句之间
(3)块注释与单行注释之前
(4)方法内部的逻辑片段之间
(5)同一源文件的两个代码片段之间,或者在同一源文件的类与接口的定义之间可以插入两行空白行
六、方法、变量与常量的命名规则
1、方法的命名规则:
(1)方法一般来说都是动词,第一个字母小写,多个单词混合的情况下,第一个单词后的所有单词的第一个字母大写,其余字母小写
(2)方法的声明部分,通常要对方法功能提供描述,以及方法中返回值与参数的说明
2、变量的命名规则:
变量的第一个字母即使系统允许,也不要为_,或者$.
单字符的变量名应该尽量避免,除非临时变量。
3、常量的命名方法
常量一般采用大写字母单词命名,单词与单词之间用下划线加以分隔
例如:static final int MAN_WINDTH = 4;
七、编程实践
1、引用类中的静态变量与方法的规则:
不用通过类的实例对象引用静态变量和静态方法,即使这是允许的。而应该通过类来引用。
2、变量的赋值规则
尽量避免在一个单行中将一个值赋给多个变量。
尽量避免对一元表达式赋值,如:i++ = m++
尽量避免嵌套赋值,会浪费编译器较多时间,如:d = ( a = b + c) + r;
应修改为:
a = b + c;
d = a + r;
3、括号规则:
尽量使用()来界定表达式的结合顺序,避免由于运算符优先级问题导致非主观意图错误。
if(i == j && m == n) //应尽量避免
if((i == j ) && ( m == n)) // 正确
4、返回值规范:
if (isTrue){
return true;
} else {
return false;
}
应改为: return isTrue;
if (condition) {
return x;
}
return y;
应改为:
return (condition ? x : y);