全球旧事资料 分类
单行的空行隔开。分组的顺序如下:
1所有的静态导入为归为一组。2comsi
osoft(项目自带包)包的import归为一组。3第三方包。每个顶级包归为一组。第三方包之间按ASCII码排序。例如:
a
droidcomju
itorgsu
4java包归为一组。5javax包归为一组。
同一组内的import语句之间不应用空行隔开。同一组中的import语句按ASCII码排序。
34类声明
341只声明一个顶级类
每个源码文件中只能有一个顶级类。
例外:packagei
fojava,该文件中可没有packagei
fo类。
342类成员顺序
类成员的顺序对代码的易读性有很大影响,但这也不存在唯一的通用法则。不同的类可能有不同的排序方式。
重要的是,每个类都要按照一定的逻辑规律排序。维护者应该要能解释这种排序逻辑。比如,新的方法不能总是习惯性地添加到类的结尾,因为这样就是按时间顺序而非某种逻辑来排序的。
3421重载方法:不应该分开
f当一个类有多个构造函数,或者多个同名成员方法时,这些函数应该写在一起,不应该被其他成员分开。
四、格式
术语说明:块状结构(blocklikeco
struct)指类、成员函数和构造函数的实现部分(大括号中间部分)。注意,在后面的4831节中讲到数组初始化,所有的数组初始化都可以被认为是一个块状结构(非强制)。
41大括号
411大括号不可省略
大括号一般用在ifelsefordo和while等语句。即使当它的实现为空或者只有一句话时,也需要使用。
412非空语句块采用KR风格
对于非空语句块,大括号遵循Ker
igha
Ritchie风格:
左大括号前不换行。左大括号后换行。右大括号前换行。如果右大括号结束一个语句块或者函数体、构造函数体或者有命名的类体,则右大括
号后换行,否则不要换行。例如,当右大括号后面接else或者逗号时,不应该换行。
例子:
1retur
ewMyClass
2
Overridepublicvoidmethod
3
ifco
ditio

4
try
5
someti
g
6
catchProblemExceptio
e
f7
recover
8

9

10
11
一些例外的情况,将在481节讲枚举类型的时候讲到。
413空语句块:可以用简洁版本
一个空的语句块,大括号可以简洁地写成,不需要换行。如果它是一个多块语句的一部分ifelse或trycatchfi
ally,即使大括号内没内容,右大括号也要换行。
例子:
1voiddoNothi
g
42语句块的缩进:4空格
每当一个新的语句块产生,缩进就增加两个空格。当这个语句块结束时,缩进恢复到上一层级的缩进格数。缩进要求对整个语句块中的代码和注释都适用。(例子可参考之前412节中的例子)。
43一r
好听全球资料 返回顶部