Java源文件还遵循以下规则:
- 开头注释(参见"开头注释")
- 包和引入语句(参见"包和引入语句")
- 类和接口声明(参见"类和接口声明")
3.1.1 开头注释(Beginning Comments)
所有的源文件都应该在开头有一个C语言风格的注释,其中列出类名、版本信息、日期和版权声明:
/*
* Classname
*
* Version information
*
* Date
*
* Copyright notice
*/
3.1.2 包和引入语句(Package and Import Statements)
在多数Java源文件中,第一个非注释行是包语句 。在它之后可以跟引入语句 。例如:
package java.awt;
import java.awt.peer.CanvasPeer;
3.1.3 类和接口声明(Class and Interface Declarations)
下表描述了类和接口声明的各个部分以及它们出现的先后次序 。参见"Java源文件范例"中一个包含注释的例子 。
类/接口声明的各部分 注解
1 类/接口文档注释(/**……*/) 该注释中所需包含的信息 , 参见"文档注释"
2 类或接口的声明
3 类/接口实现的注释(/*……*/)如果有必要的话 该注释应包含任何有关整个类或接口的信息 , 而这些信息又不适合作为类/接口文档注释 。
4 类的(静态)变量 首先是类的公共变量,随后是保护变量 , 再后是包一级别的变量(没有访问修饰符,access modifier),最后是私有变量 。
5 实例变量 首先是公共级别的,随后是保护级别的,再后是包一级别的(没有访问修饰符),最后是私有级别的 。
6 构造器
7 方法 这些方法应该按功能 , 而非作用域或访问权限 , 分组 。例如,一个私有的类方法可以置于两个公有的实例方法之间 。其目的是为了更便于阅读和理解代码 。
4 缩进排版(Indentation)
4个空格常被作为缩进排版的一个单位 。缩进的确切解释并未详细指定(空格 vs. 制表符) 。一个制表符等于8个空格(而非4个) 。
4.1 行长度(Line Length)
尽量避免一行的长度超过80个字符,因为很多终端和工具不能很好处理之 。
注意:用于文档中的例子应该使用更短的行长,长度一般不超过70个字符 。
4.2 换行(Wrapping Lines)
当一个表达式无法容纳在一行内时,可以依据如下一般规则断开之:
- 在一个逗号后面断开
- 在一个操作符前面断开
- 宁可选择较高级别(higher-level)的断开,而非较低级别(lower-level)的断开
- 新的一行应该与上一行同一级别表达式的开头处对齐
- 如果以上规则导致你的代码混乱或者使你的代码都堆挤在右边,那就代之以缩进8个空格 。
以下是断开方法调用的一些例子:
someMethod(longExpression1, longExpression2, longExpression3,
longExpression4, longExpression5);
var = someMethod1(longExpression1,
someMethod2(longExpression2,
longExpression3));
以下是两个断开算术表达式的例子 。前者更好,因为断开处位于括号表达式的外边,这是个较高级别的断开 。
longName1 = longName2 * (longName3 + longName4 - longName5)
+ 4 * longname6; //PREFFER
longName1 = longName2 * (longName3 + longName4
- longName5) + 4 * longname6; //AVOID
以下是两个缩进方法声明的例子 。前者是常规情形 。后者若使用常规的缩进方式将会使第二行和第三行移得很靠右 , 所以代之以缩进8个空格
//CONVENTIONAL INDENTATION
someMethod(int anArg, Object anotherArg, String yetAnotherArg,
Object andStillAnother) {
...
}
//INDENT 8 SPACES TO AVOID VERY DEEP INDENTS
private static synchronized horkingLongMethodName(int anArg,
Object anotherArg, String yetAnotherArg,
推荐阅读
- python循环功能可通过什么命令实现,python 循环怎么用
- 探险直播中的飘是什么,直播探险是什么游戏
- 怎么拆主机显卡,怎么拆主机显卡教程
- css3滤镜怎么用,css滤镜失效了吗
- plus函数python plus函数如何化简
- sqlserver新建触发器,sql server创建触发器语句
- erp系统推广计划书,erp推广专员
- 瓷砖直播素材图,瓷砖直播策划书
- linux软件命令 linux系统运行软件的命令