1. 缩进排版(Indentation)
4个空格常被作为缩进排版的一个单位。缩进的确切解释并未详细指定(空格 vs. 制表符)。一个制表符等于n个空格(视具体的编辑器而定,Eclipse默认一个制表符为4个字符)。
3.1 行长度(Line Length)
尽量避免一行的长度超过80个字符,因为很多终端和工具不能很好处理之。
注意:鉴于Eclipse开发工具工作区的左侧和右侧都被非代码编辑器所占据,因此建议每行的代码长度不要超过70个字符。
3.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; //推荐使用
longName1 = longName2 * ( longName3 + longName4
- longName5 ) + 4 * longname6; //应避免这样使用
|
以下是两个缩进方法声明的例子。前者是常规情形。后者若使用常规的缩进方式将会使第二行和第三行移得很靠右,所以代之以缩进空格,尽量与运算符或者括号对齐。
//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, Object andStillAnother) {
...
}
|
if语句的换行通常使用8个空格的规则,因为常规缩进(4个空格)会使语句体看起来比较费劲。比如:
//DON’T USE THIS INDENTATION
if ((condition1 && condition2)
|| (condition3 && condition4)
||!(condition5 && condition6)) { //BAD WRAPS
doSomethingAboutIt(); //MAKE THIS LINE EASY TO MISS
}
//USE THIS INDENTATION INSTEAD
if ((condition1 && condition2)
|| (condition3 && condition4)
||!(condition5 && condition6)) {
doSomethingAboutIt();
}
//OR USE THIS
if ((condition1 && condition2) || (condition3 && condition4)
||!(condition5 && condition6)) {
doSomethingAboutIt();
}
|
这里有三种可行的方法用于处理三元运算表达式:
alpha = (aLongBooleanExpression) ? beta : gamma; //表达式代码不长时,应尽量使用该方法
alpha = (aLongBooleanExpression) ? beta //表达式代码较长时可以使用该法
: gamma;
alpha = (aLongBooleanExpression) //表达式代码较长时也可以使用该法
? beta
: gamma;
|
2. 注释(Comments)
Java程序有两类注释:实现注释(implementation comments)和文档注释(document comments)。实现注释是那些在C++中见过的,使用/*...*/和//界定的注释。文档注释是Java独有的,并由/**...*/界定。文档注释可以通过javadoc工具转换成HTML文件。
实现注释用以注释代码或者实现细节。文档注释从实现自由(implementation-free)的角度描述代码的规范。它可以被那些手头没有源码的开发人员读懂。
注释应被用来给出代码的总括,并提供代码自身没有提供的附加信息。注释应该仅包含与阅读和理解程序有关的信息。例如,相应的包如何被建立或位于哪个目录下之类的信息不应包括在注释中。
在注释里,对设计决策中重要的或者不是显而易见的地方进行说明是可以的,但应避免提供代码中己清晰表达出来的重复信息。通常应避免那些代码更新就可能过时的注释。
注意:频繁的注释有时反映出代码的低质量。当你觉得被迫要加注释的时候,考虑一下重写代码使其更清晰。
注释不应写在用星号或其他字符画出来的大框里。注释不应包括诸如制表符和回退符之类的特殊字符。
4.1 实现注释的格式(Implementation Comment Formats)
程序可以有4种实现注释的风格:块(block)、单行(single-line)、尾端(trailing)和行末(end-of-line)。
4.1.1 块注释(Block Comments)
块注释通常用于提供对文件,方法,数据结构和算法的描述。块注释被置于每个文件的开始处以及每个方法之前。它们也可以被用于其他地方,比如方法内部。在功能和方法内部的块注释应该和它们所描述的代码具有一样的缩进格式。
块注释之首应该有一个空行,用于把块注释和代码分割开来,比如:
/*
* Here is a block comment.
*/
块注释可以以/*-开头,这样indent(1)就可以将之识别为一个代码块的开始,而不会重排它。
/*-
* Here is a block comment with some very special
* formatting that I want indent(1) to ignore.
*
* one
* two
* three
*/
|
注意:如果你不使用indent(1),就不必在代码中使用/*-,或为他人可能对你的代码运行indent(1)作让步。
4.1.2 单行注释(Single-Line Comments)
短注释可以显示在一行内,并与其后的代码具有一样的缩进层级。如果一个注释不能在一行内写完,就该采用块注释(参见“块注释”)。单行注释之前应该有一个空行。以下是一个Java代码中单行注释的例子:
if (condition) {
/* Handle the condition. */
...
}
4.1.3 尾端注释(Trailing Comments)
极短的注释可以与它们所要描述的代码位于同一行,但是应该有足够的空白来分开代码和注释。若有多个短注释出现于大段代码中,它们应该具有相同的缩进。
以下是一个Java代码中尾端注释的例子:
if (a == 2) {
return TRUE; /* special case */
} else {
return isPrime(a); /* works only for odd a */
}
4.1.4 行末注释(End-Of-Line Comments)
注释界定符"//",可以注释掉整行或者一行中的一部分。它一般不用于连续多行的注释文本;然而,它可以用来注释掉连续多行的代码段。以下是所有三种风格的例子:
if (foo > 1) {
// Do a double-flip.
...
}
else {
return false; // Explain why here.
}
//if (bar > 1) {
//
// // Do a triple-flip.
// ...
//}
//else {
// return false;
//}
4.2 文档注释(Documentation Comments)
注意:此处描述的注释格式之范例,参见"Java源文件范例"
若想了解更多,参见"How to Write Doc Comments for Javadoc",其中包含了有关文档注释标记的信息(@return, @param, @see):http://java.sun.com/javadoc/writingdoccomments/index.html
若想了解更多有关文档注释和javadoc的详细资料,参见javadoc的主页: http://java.sun.com/javadoc/index.html
文档注释描述Java的类、接口、构造器,方法,以及字段(field)。每个文档注释都会被置于注释定界符/**...*/之中,一个注释对应一个类、接口或成员。该注释应位于声明之前:
/**
* The Example class provides ...
*/
public class Example { ...
注意顶层(top-level)的类和接口是不缩进的,而其成员是缩进的。描述类和接口的文档注释的第一行(/**)不需缩进;随后的文档注释每行都缩进1格(使星号纵向对齐)。成员,包括构造函数在内,其文档注释的第一行缩进4格,随后每行都缩进5格。
若你想给出有关类、接口、变量或方法的信息,而这些信息又不适合写在文档中,则可使用实现块注释或紧跟在声明后面的单行注释。例如,有关一个类实现的细节,应放入紧跟在类声明后面的实现块注释中,而不是放在文档注释中。
文档注释不能放在一个方法或构造器的定义块中,因为Java会将位于文档注释之后的第一个声明与其相关联。
分享到:
相关推荐
本资料包"设计规范和编码规范_Java规范_java设计规范_设计规范和编码规范_"主要涵盖了Java编程中的核心规范,旨在帮助开发者提升代码质量。 设计规范通常涉及到以下几个方面: 1. **模块化设计**:提倡使用单一...
这份"java编码规范_new .xls"可能是表格形式的规范列表,详细列出了各项规则和示例。它可能还包含了一些最佳实践和团队特定的约定,比如代码审查流程、日志记录要求以及如何处理第三方库的集成。 遵循编码规范不仅...
Java编码规范是软件开发中的一项重要指南,旨在提高代码的可读性、可维护性和团队协作效率。以下是一些核心的Java编码规范要点,详细解释了如何编写清晰、一致且易于理解的Java代码: 1. **命名规范**: - 类名:...
### JAVA编码规范要点解析 #### 一、引言与背景 **1.1 简介** 本规范由沈阳东软软件股份有限公司金融事业部制定,旨在为Java开发者提供一套全面的编码指南。对于习惯自由编程的Java程序员而言,遵循一定的编码...
Java编码规范是开发人员遵循的一套指导原则,它涵盖了命名规则、注释标准、类与对象设计、异常处理等多个方面。以下是对这些规范的详细解读: 1. **命名规范** - 类名:使用驼峰式命名,首字母大写,例如`...
华为JAVA编码规范.pdf是华为公司编写的JAVA编程语言编码规范,旨在提供一个统一的编程风格和代码组织方式,以提高代码的可读性、维护性和可重用性。该规范涵盖了编程语言的基本结构、命名规则、代码组织、注释、编程...
Java编码规范是保证代码质量、提高团队协作效率的重要准则,对于任何Java开发者来说,遵循一套良好的编码规范至关重要。以下是对标题和描述中提及的七大规范的详细解释: 1. **命名规范**: - 类(Class):使用大...
在Java编程世界里,遵循一套良好的编码规范是至关重要的,它不仅能让代码更易于阅读和维护,还能提高团队协作的效率。"JAVA编程规范"涵盖了多个方面,包括但不限于命名规范、方法参数处理、注释规则、类和接口设计、...
腾讯 Java 编码规范是腾讯集团管理标准的一部分,旨在确保公司项目代码的易维护性和编码安全性。该规范涵盖了 Java 编码风格、文件组织、代码风格、注释、命名、声明、异常、习惯等方面。 一、文件组织 * 文件注释...
华为Java语言编码规范.doc 本文档介绍了华为Java语言编程规范的相关知识点,涵盖...华为Java语言编程规范旨在确保代码的可读性、可维护性和可扩展性,涵盖编程规范、命名规范、注释规范、编码规范、JTEST规则等内容。
本文档对 JAVA 编程规范进行了详细的讲解,涵盖了编码风格、代码组织、注释、变量命名、语句风格、空格使用、缩进风格、括号使用、语句长度、空行使用、关键字间距、类属性和方法组织、源代码注释、包注释、文件注释...
Java编码规范是软件开发中非常重要的一个环节,它旨在提高代码质量、可读性、可维护性和团队协作效率。这份文档,"Java编码规范.doc",由东软集团有限公司的商用软件事业部编写,包含了国内大型Java项目和国际知名...
这份规范不仅对新手有很好的引导作用,也为经验丰富的开发者提供了良好的编码习惯建议,旨在打造高效、稳定、可读性强的Java软件。 1. **命名规范** - 类名:采用驼峰式命名,每个单词首字母大写,如`UserName`. ...
以下是从给定的文件信息中提炼出的关键知识点,涵盖了JAVA编码规范的基本原则、文件管理、代码格式、变量命名规则、以及代码注释等方面。 ### 一、JAVA编码规范的重要性 JAVA编码规范的目的在于统一代码的编码风格...
百度作为一家技术驱动的公司,也提出了其内部使用的Java编码规范,旨在确保代码的一致性和专业性。 ### 1. 代码书写 #### 1.1 K&R代码风格 百度Java编码规范要求程序块采用K&R(Kernel Normal Routine)代码风格...
在编程世界中,编码规范是确保代码质量、可读性和团队协作的重要基石。C++作为一门强大而复杂的编程语言,其编码规范尤为重要。本资源"bianmaguifan.rar"聚焦于C++以及相关的编程规范,尽管文件列表中并未直接包含...
JAVA 编码规范是指导开发人员编写高质量、可读性...综上所述,JAVA编码规范是开发过程中不可或缺的一部分,它涵盖了从文件结构到代码细节的方方面面,旨在提升代码质量,确保团队合作的顺畅,同时降低长期维护的成本。