`
taody
  • 浏览: 97749 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

《JAVA代码规范》(三)通用代码格式 - 缩进、行长度、换行、空行、空格(2.2-2.6) ... ...

 
阅读更多

转载自:http://www.javadt.com/thread-364-1-1.html

 

《JAVA代码规范》(三)通用代码格式 - 缩进、行长度、换行、空行、空格(2.2-2.6) ... ...

2.2      缩进
4个空格常被作为缩进排版的一个单位,以表示缩进,显示程序的层次级别,增加程序的可读性。不要在源代码中保留tab字符,这是因为tab字符会随着不同用户的不同设置和不同的资源管理工具(打印、文档、版本控制等)而代表不同的宽度。
2.3      行长度
尽量避免一行的长度超过80个字符,因为很多终端和工具不能很好处理之。
注意:用于文档中的例子应该使用更短的行长,长度一般不超过70个字符。
2.4      换行
当一个表达式无法容纳在一行内时,可以依据如下一般规则断开之:
Ø        在一个逗号后面断开
Ø        在一个操作符前面断开
Ø        宁可选择较高级别(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,
          Object andStillAnother) {
    ...
  }
  
if语句的换行通常使用8个空格的规则,因为常规缩进(4个空格)会使语句体看起来比较费劲。比如:
  //不要使用如下缩进
  if ((condition1 && condition2)
      || (condition3 && condition4)
      ||!(condition5 && condition6)) { //不好的换行
      doSomethingAboutIt();             //易使这行被忽视
  }
  //使用如下缩进
  if ((condition1 && condition2)
            || (condition3 && condition4)
            ||!(condition5 && condition6)) {
      doSomethingAboutIt();
  }
  //或者使用如下缩进
  if ((condition1 && condition2) || (condition3 && condition4)
            ||!(condition5 && condition6)) {
      doSomethingAboutIt();
  }
  
这里有三种可行的方法用于处理三元运算表达式:
  alpha = (aLongBooleanExpression) ? beta : gamma;
  alpha = (aLongBooleanExpression) ? beta
                                   : gamma;
  alpha = (aLongBooleanExpression)
          ? beta
          : gamma;
2.5      空行
空行将逻辑相关的代码段分隔开,以提高可读性。下列情况应该总是使用两个空行:
Ø        一个源文件的两个片段(section)之间
Ø         类声明和接口声明之间
下列情况应该总是使用一个空行:
Ø        两个方法之间
Ø        方法内的局部变量和方法的第一条语句之间
Ø        块注释或单行注释之前
Ø        一个方法内的两个逻辑段之间,用以提高可读性
2.6      空格
下列情况应该使用空格:
Ø        一个紧跟着括号的关键字应该被空格分开,例如:
  while (true) {
      ...
  }
  
注意:空格不应该置于方法名与其左括号之间。这将有助于区分关键字和方法调用。
Ø        空白应该位于参数列表中逗号的后面
Ø        所有的二元运算符,除了".",应该使用空格将之与操作数分开。一元操作符和操作数之间不因该加空格,比如:负号("-")、自增("++")和自减("--")。例如:
a += c + d;
a = (a + b) / (c * d);
while (d++ = s++) {
       n++;
}
printSize("size is " + foo + "\n");
  
Ø        for语句中的表达式应该被空格分开,例如:
for (expr1; expr2; expr3)
  
Ø        强制转型后应该跟一个空格,例如:
   myMethod((byte) aNum, (Object) x);
   myMethod((int) (cp + 5), ((int) (i + 3)) + 1);



转载请注明:http://www.javadt.com
分享到:
评论

相关推荐

    简洁的Net程序开发指导

    2.2.Tab缩进 11 3.恰当的代码注释 11 3.1.块注释 11 3.2.单行注释 12 3.3.注释文档 12 3.4.复杂的逻辑注释 12 3.5.注释技巧 13 4.定义 15 4.1.每行定义数 15 4.2.初始化 15 4.3.类及接口的定义 15 5.语句 16 5.1....

    华为C++编码规范

    华为代码规范,适用 C/C++ 1 概述 ................................................................................................................................................................... 5 ...

    C#代码规范 常用的代码编写规则

    C# 代码规范中列举了c#编程中所涉及的所以代码编写规范 第一章 概述 4 规范制定原则 4 术语定义 4 Pascal 大小写 4 Camel 大小写 4 文件命名组织 4 1.3.1文件命名 4 1.3.2文件注释 4 第二章 代码外观 6 2.1 列宽 6 ...

    C#编程规范文档 详细

    2.2 换行 6 2.3 缩进 6 2.4 空行 6 2.5 空格 6 2.6 括号 - () 7 2.7 花括号 - {} 7 第三章 程序注释 9 3.4 注释概述 9 3.2 文档型注释 9 3.3 类C注释 10 3.4 单行注释 10 3.5 注释标签 10 第四章 申明 14 4.7 每行...

    C#编程规范

    2.2 换行 6 2.3 缩进 6 2.4 空行 6 2.5 空格 6 2.6 括号 - () 7 2.7 花括号 - {} 7 第三章 程序注释 9 3.4 注释概述 9 3.2 文档型注释 9 3.3 类C注释 10 3.4 单行注释 10 3.5 注释标签 10 第四章 申明 14 4.1 每行...

    C#编程规范 2.0 (CodePub)

    2.2 换行 6 2.3 缩进 6 2.4 空行 6 2.5 空格 6 2.6 括号 - () 7 2.7 花括号 - {} 7 第三章 程序注释 9 3.4 注释概述 9 3.2 文档型注释 9 3.3 类C注释 10 3.4 单行注释 10 3.5 注释标签 10 第四章 申明 14 4.1 每行...

    Python编码风格指南(中文版)

    3.2 每行长度 3.3 圆括号 3.4 缩进 3.5 空行 3.6 空格 3.7 Python 解释器 3.8 注释 3.9 类 3.10 字符串 3.11 TODO style 3.12 import 分组及顺序 3.13 语句 3.14 访问控制 3.15 命名 3.16 程序入口 3.17 总结

    亮剑.NET深入体验与实战精要2

    本书集实用性、思想性、趣味性于一体,内容共分为技术基础总结、系统架构设计思想及项目实战解析三部分,随书所附光盘收录大量实例代码及独家披露的商业系统,供读者参考学习。 本书适合于.NET初、中级开发人员参考...

    亮剑.NET深入体验与实战精要3

    本书集实用性、思想性、趣味性于一体,内容共分为技术基础总结、系统架构设计思想及项目实战解析三部分,随书所附光盘收录大量实例代码及独家披露的商业系统,供读者参考学习。 本书适合于.NET初、中级开发人员参考...

    C语言编码规范

    对于较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读;循环、判断等语句中若有较长的表达式或语句,则要...

Global site tag (gtag.js) - Google Analytics