在上一篇的java编程规范(一)中咱们讲述了在Java编码中的通常原则,虽然这些原则并不涉及具体的代码规范,可是这些原则倒是咱们在Java开发过程当中所应该遵循的规范与思想。今天咱们将学习一些涉及具体代码书写的格式规范。java
为了加强代码的可读性,咱们经常把一些单独的语句组织成语句块,并对各块统一缩进使之与周围代码分开。编程
1、若是咱们使用开发环境,则咱们能够使用开发环境提供的缩进样式。可是若是咱们是手写代码,应该使用两个空格缩进。segmentfault
class MyFuction { ··void function(int arg) { ····if (arg < 0) { ······for (int i = 0; i <= arg; i++) { ········// ... ······} ····} ··} }
2、块语句起始端的大括号应该放在引入块语句那一行的最后,结束端的大括号要独占一行,而且与引入嵌套语句那一行的第一个字母对齐。咱们平常使用的代码规范以下:
类定义:dom
public class MyClass { ··· }
内部类定义:编辑器
public class OuterClass { ··· class InnerClass { ... } }
方法定义:学习
void method(int j) { ··· }
for循环语句:this
for (int i = 0; i <= j; i++) { ··· }
if-else语句:编码
if (j < 0) { ··· } else if ( j > 0) { ··· } else { ··· }
try,catch,finally块:代码规范
try { ··· } catch { ··· } finally { ··· }
switch语句:code
switch (value) { case 0: ··· break; default: ··· break; }
while语句:
while (a < b) { ··· }
do-while语句:
do { ··· } while (a < b);
为了提升一个团队的工做效率,不要让每一个组员任意选择各自代码里的缩进量及样式,应该制定统一的一套标准的缩进规则,而且确保团队里的每一个人都遵循这个标准。
尽管在窗口化的现代编辑器中,能够利用横向滚动条来阅读很长的单行代码。可是打印机对于超过它最大打印宽度的语句,就会把它们截断、换行或者打印在不一样的页上。所以,要把每行代码的长度限制在打印环境所支持的最大宽度以内,这个值通常是80或者132个字符。
1、不要把多个语句放在同一行里以避免超过最大可接受宽度。应该一条语句放置在一行里。
// 这样写太长 double x = Math.random(); double y = Math.random(); // 应该一句占一行 double x = Math.random(); double y = Math.random();
2、若是一行代码中包含了复杂的表达式,就应该把它拆分为几个短小的子表达式,每一个子表达式的运算结果存储在一个临时变量里,而且单独放置在一行。
// 这样的表达式太长 double length = Math.sqrt(Math.pow(Math.random(),2.0),Math.pow(Math.random(),2.0)); // 应该按下面这样拆分 double x = Math.pow(Math.random(),2.0); double y = Math.pow(Math.random(),2.0); double length = Math.sqrt(x + y);
空白就是页面上没有可见字符的区域。代码里若是空白太少就会不易阅读和理解,因此应该使用足够多的空白把方法、注释、代码块和表达式展现清楚。
1、如下状况使用单空白来分隔:
(1) 右括号")"或者紧随其后的关键字;关键字和紧随其后的左括号"("或者"{";右括号")"和紧随其后的左括号"{";其实细心的读者会发如今上述内容的介绍中已经应用了这些规范,在此就不赘述了。
if (j < 0) { ··· } else if ( j > 0) { ··· } else { ··· }
(2) 除了"."以外的运算符与其先后的表达式之间。
double length = Math.sqrt(x * x + y * y); double x = length > 0.0 ? (x / length) : x;
2、如下状况应该使用空行来分隔:
(1) 每一个逻辑上独立的方法实现之间
void handleInfo(Message message) { DataInput content = message.getDataInput(); int messageType = content.readInt(); switch (messageType) { case warning: ... break; case error: ... break; default: ... break; } }
(2) 定义类或者接口时,每一个成员之间使用空行
public class Car { class InnerCar { ... } private Bar bar; Foo(Bar bar) { this.bar = bar; } }
(3) 源文件中,每一个类和接口的定义之间要使用空行
interface Paly { ... } public class Person implements Play{ ... }
不一样的环境对Tab控制符的解释也是不一样的,代码的格式在原来的编辑环境下可能正确无误,可是若是放到另外一个对Tab控制符有不一样解释的系统中,可能格式混乱、没法阅读。
为了不出现以上的状况,咱们应该使用空格来缩进代码。在一个团队中,应该设置团队通用的缩进标准,而且团队里的全部人都严格遵照这个标准。