ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:32.02KB ,
资源ID:4421698      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4421698.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(JavaAndroid编码规范.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

JavaAndroid编码规范.docx

1、JavaAndroid编码规范Java&Android编码规范试用版、目 录前言 41 代码布局 51.1 基本格式 51.2 对齐 61.3 空行空格 71.4 断行 92 注释 122.1 实现注释 122.2 文档注释 173 命名规则 204 声明 245 表达式与语句 256 类和接口 297 Android 311234567前 言编写本规范的目的是为了进一步规范JAVA软件编程风格,提高软件源程序的可读性、可靠性和可重用性,确保在开发成员或开发团队之间的工作可以顺利交接,不必花很大的力气便能理解已编写的代码,以便继续维护和改进以前的工作,提高软件源程序的质量和可维护性,减少软件维

2、护成本。本规范的内容包括:代码布局、注释、命名规则、声名、表达式与语句、类与接口等。本规范分成规则性和建议性两种:对于规则性规范,要求所有软件开发人员严格执行;对于建议性规范,开发人员可以根据实际情况选择执行。自本规范实施之日起,以后新编写的和修改的代码均应执行本规范。本规范用到的术语解释如下:规则:编程时必须遵守的规则。建议:编程时必须加以考虑的原则。说明:对相应规则的必要的解释。正例:对此规则或建议给出的修正后的例子。反例:对此规则或建议给出的反面的例子。 1 代码布局代码布局的目的是显示出程序良好的逻辑结构,提高程序的准确性、连续性、可读性、可维护性。更重要的是,统一的代码布局和编程风格

3、,有助于提高整个项目的开发质量,提高开发效率,降低开发成本。同时,对于普通程序员来说,养成良好的编程习惯有助于提高自己的编程水平,提高编程效率。因此,统一的、良好的程序布局和编程风格不仅仅是个人主观美学上的或是形式上的问题,而且涉及到产品质量,涉及到个人编程能力的提高,必须要引起重视。1.1 基本格式【规则1-1-1】源代码文件(.java)的布局顺序是:包、import语句、类。正例:packagecom.sunsharp; importjava.awt.peer.CanvasPeer;import java.io.*;public class ClassName【规则1-1-2】遵循统一的

4、布局顺序来书写import语句,不同类别的import语句之间用空行分隔。说明:package语句其后可跟import语句,而且与package间隔一个空行。import包的排列顺序为java开头的包在最前面,接下来是引自外部的包,再接下来是应用程序自身的包,即import 中标准的包名要在本地的包名之前,而且按照字母顺序排列。正例:packagecom.sunsharp; import java.util.ArrayList; /java自身的包importjava.util.List;importorg.apache.http.*; /第三方的包mon.*; /程序自身的包【规则1-1-3

5、】if、else、else if、for、while、do,switch等语句独占一行,执行语句不得紧跟其后。不论执行语句有多少都要加。说明:这样可以防止书写失误,也易于阅读。正例:if(varible1 varible2) varible1 = varible2;反例:下面的代码执行语句紧跟if的条件之后,而且没有加,违反规则。if (varible1 varible2) varible1 = varible2; 建议1-1-1源程序中关系较为紧密的代码应尽可能相邻。说明:这样便于程序阅读和查找。正例:length = 10;width = 5; / 矩形的长与宽关系较密切,放在一起。str

6、Caption = “Test”;反例:length = 10;strCaption = “Test”; width = 5;1.2 对齐【规则1-2-1】一般禁止使用制表符,必须使用空格进行缩排。缩进为4个空格。说明:对于利用Eclipse等编程工具的,可以设置TAB键为4个空格代替。消除不同编辑器对制表符处理的差异。【规则1-2-2】程序的分界符和应独占一行,同时与引用它们的语句左对齐。 之内的代码块使用缩进规则对齐。说明:这样使代码便于阅读,并且方便注释。do while语句可以例外,while条件可与 在同一行。正例:voidfunction(intvar) while (condit

7、ion)doSomething(); / 与 缩进4格 /与引用它们的模块左对齐反例:voidfunction(intvar)while (condition)doSomething();【规则1-2-3】多维的数组如果在定义时初始化,按照数组的矩阵结构分行书写。正例:int number= 1,1, 1, 2, 4, 8, 3, 9, 27, 4, 16, 64 ;【建议1-2-1】相关的赋值语句等号对齐。正例:width = 50;length = 20;height = 40;1.3 空行空格【规则1-3-1】不同逻辑程序块之间要使用空行分隔。说明:空行起着分隔程序段落的作用。适当的空行

8、可以使程序的布局更加清晰。下列情况应该总是使用空行: 一个源文件的两个片段(section)之间 类声明和接口声明之间 常量声明区域之后 方法声明之前 方法内的局部变量和方法的第一条语句之间 一个方法内的两个逻辑段之间,用以提高可读性正例:voiddoSomething() Connection con = null; /数据库连接 booleanreturnParameter = false; /返回 /空一行/if代码的注释 if (reconsign = null) return false;反例:voiddoSomething()Connection con = null; /数据库连

9、接 booleanreturnParameter = false; /返回/if代码的注释 if (reconsign = null)return false;【规则1-3-2】一元操作符如“+”、“-”、“!”、“”、(类型)等前后不加空格。“”“.”这类操作符前后不加空格。正例:!valuevalue+countnumberi = 5;box.getWidth();【规则1-3-3】多元运算符和它们的操作数之间至少需要一个空格。说明:空格的多少根据上下文调整。正例:value = oldValue;total + value;number += 2;【规则1-3-4】方法名之后不要留空格。

10、说明:方法名后紧跟左括号(。【规则1-3-5】(向后紧跟,)、,、;向前紧跟,紧跟处不留空格。,之后要留空格。;不是行结束符号时其后要留空格。正例:例子中的凵代表空格。for(i凵=凵0;凵i凵凵MAX_BSC_NUM;凵i+)doSomething(width,凵height);1.4 断行【规则1-4-1】长表达式(超过120列)要在低优先级操作符处拆分成新行,操作符放在新行之首(以便突出操作符)。拆分出的新行要进行适当的缩进,使排版整齐。说明:断行方法:1. 在逗号后断行2. 在操作符前断行3. 在低优先级操作符处断行对齐方法:1. 将新行与同一级别的先前行的表达式的起始端对齐。2. 条

11、件表达式的续行在第一个条件处对齐。3. for循环语句的续行在初始化条件语句处对齐。4. 函数调用和函数声明的续行在第一个参数处对齐。5. 赋值语句的续行应在赋值号处对齐。6. 如果上述规则导致代码排列混乱或代码左边界少于两个缩进,可用两倍缩进替代。下面是一些断行方法调用的示例:正例:someMethod(longExpression1,longExpression2, longExpression3, longExpression4, longExpression5);var = someMethod1(longExpression1,someMethod2(longExpression2,

12、longExpression3);下面是两个断行算术表达式例子,第一个是优选方法,因为断行出现在括号表达式之外,属于较高级别的断行。正例:longName1 = longName2 * (longName3 + longName4 - longName5)+ 4 * longname6; /允许的断行方法反例:longName1 = longName2 * (longName3 + longName4-longName5) + 4 * longname6; /应该避免的断行方法下面是两个缩排方法的例子,第一个是传统的方式,第二个例子中如果采用传统方式缩排将导致第二行和第三行右边出现太多空白,因

13、此,采用8个空格符替代。/传统的缩排方法,第二行与第一行的括号对齐。正例:voidsomeMethod(intanArg, Object anotherArg, String yetAnotherArg,Object andStillAnother) ./你代码的位置/由8个空格符来替代与括号对齐的方法,以避免第二行、第三行出现太多的空格符正例:private static synchronized horkingLongMethodName(intanArg,Object anotherArg, String yetAnotherArg,Object andStillAnother) ./你

14、代码的位置对于if语句的行封装通常使用8空格规则,因为传统的4空格缩排方式使得有些语句容易被忽略掉,使if语句体难以理解。例如:反例:/不允许使用下面的缩进方法if (condition1 & condition2)| (condition3& condition4)|!(condition5 & condition6) /不好的缩进doSomethingAboutIt(); /这样对齐的缩进方式很容易让阅读的人忽略掉这一行正例:/宜采用下面的缩进方法(分成三行的情况)if (condition1 & condition2)| (condition3& condition4)|!(condit

15、ion5 & condition6) |doSomethingAboutIt();/或使用下面的缩进方法(分成二行的情况)正例:if (condition1 & condition2) | (condition3 & condition4)|!(condition5 & condition6) doSomethingAboutIt();对于三重表达式,有三种方式可以对它进行换行缩排:正例:/单行的情况alpha = (aLongBooleanExpression) ? beta : gamma;/分成两行的情况,第二行的冒号与第一行的问号对齐。alpha = (aLongBooleanExpr

16、ession) ? beta: gamma;/分成三行的情况,第二行的问号和第三行的冒号都与第一行的括号对齐alpha = (aLongBooleanExpression)? beta: gamma;【规则1-4-2】方法声明时,修饰符、类型与名称不允许分行书写。正例:public static doublecalculateArea(double width, double height);反例:public static doublecalculateArea(double width, double height);2 注释注释有助于理解代码,有效的注释是指在代码的功能、意图层次上进行注

17、释,提供有用、额外的信息,而不是代码表面意义的简单重复。Java程序有两类注释:实现注释,文档注释。2.1 实现注释实现注释是那些在C+中见过的,使用/*/和/界定的注释。实现注释有4种实现注释的风格: 块注释(BlockComments)块注释被置于每个文件的开始处以及每个方法之前。它们也可以被用于其他地方,比如方法的内部。在功能和方法内部的块注释应该和它们所描述的代码具有一样的缩进格式。 单行注释(single-line Comments)短注释可以显示一行内,并与其后的代码具有一样的缩进层级。如果一个注释不能在一行内写完,就该块注释(参见“块注释”)。单行注释之前应该有一个空行。以下是一

18、个Java代码中单行注释的例子:if (condition) / * Handle the condition. */ 尾端(trailing)极短的注释可以与它们所要描述的代码位于同一行,但是应该有足够的空白来分开代码和注释。以下是一个Java代码中单行注释的例子:if (a =2) return TRUE; / * special case */ 行末(end-of-line)。注释界定符“/”,可以注释掉整行或者一行中的一部分。它一般不用于连续多行的注释文本;然而,它可以用来注释掉多行的代码段。【规则2-1-1】块注释之首应该有一个空行,用于把块注释和代码分割开来正例:/* * Here

19、 is a block comment.*/反例:/*Here is a block comment.*/【规则2-1-2】注释符与注释内容之间要用一个空格进行分隔。正例:/* 注释内容 */ 注释内容反例:/*注释内容*/注释内容【规则2-1-3】注释应与其描述的代码相近,对代码的注释应放在其上方(需与其上面的代码用空行隔开)或右方(对单条语句的注释)相邻位置,不可放在下面。说明:在使用缩写时或之前,应对缩写进行必要的说明。避免在代码行的末尾添加注释;行尾注释使代码更难阅读。不过在批注变量声明时,行尾注释是合适的;在这种情况下,将所有行尾注释在公共制表位处对齐。正例:如下书写结构比较清晰/

20、获得子系统索引subSysIndex = data.getSysIndex;/ 代码段1注释 代码段1 /* 代码段2注释 */ 代码段2 反例1:如下例子注释与描述的代码相隔太远。/* 获得子系统索引 */subSysIndex = subSys.getSysIndex();反例2:如下例子注释不应放在所描述的代码下面。subSysIndex = subSys.getSysIndex();/* 获得子系统索引 */反例3:如下例子,显得代码与注释过于紧凑。/* 代码段1注释 */ 代码段1 /* 代码段2注释 */ 代码段2 【规则2-1-4】单行注释与所描述内容进行同样的缩进。说明:这样可

21、使程序排版整齐,并方便注释的阅读与理解。正例:如下注释结构比较清晰intdoSomething()/* 代码段1注释 */ 代码段1 /* 代码段2注释 */ 代码段2 反例:如下例子,排版不整齐,阅读不方便;intdoSomething()/* 代码段1注释 */ 代码段1 /* 代码段2注释 */ 代码段2 【规则2-1-5】若有多个尾端注释出现于大段代码中,它们应该具有相同的缩进。说明:这样可使程序排版整齐,并方便注释的阅读与理解。正例:if( a=2 )return true;/* special case */elsereturnisPrime(a); /* works only f

22、or odd a */反例:如下例子,排版不整齐,阅读不方便;if( a=2 )return true;/* special case */elsereturnisPrime(a); /* works only for odd a */【规则2-1-6】包含在 中代码块的结束处要加注释,便于阅读。特别是多分支、多重嵌套的条件语句或循环语句。说明:此时注释可以用英文,方便查找对应的语句。正例:voiddoSomething() if () while () / end of while() / 指明该条while语句结束 / end ofif () / 指明是哪条语句结束 / end of vo

23、id main() / 指明函数的结束【规则2-1-7】对分支语句(条件分支、循环语句等)必须编写注释。说明:这些语句往往是程序实现某一特殊功能的关键,对于维护人员来说,良好的注释有助于更好的理解程序,有时甚至优于看设计文档。2.2 文档注释文档注释(被称为“doc comments”)是Java独有的,并由/*/界定,注释内容里包含标签。文档注释可以通过javadoc工具转换成HTML文件。实现注释用以注释代码或或者实现细节。文档注释从实现自由(implemtentation-free)的角度描述代码的规范。它可以被那些手头没有源码的开发人员读懂。【规则2-2-1】注释使用中文注释。与doc

24、有关的标准英文单词标签保留。说明:文档型注释描述了Java类(Java classes),接口(interfaces),构造函数(constructors)、方法(methods)和域(fields)。每一个文档注释都包含在/*/分隔符中,每一个类(class)、接口(interface)或成员(member)都有一个注释。这些注释应该只出现在声明(declaration)前。标签用处用途author作者的名称类、接口说明特定某一段程序代码的作者。每一个作者各有一个标记。deprecated类、方法说明该类的应用程序编程接口 (API) 已被废弃,因此应不再使用。exceptionname d

25、escription方法说明由方法发出的异常。一个异常采用一个标记,并要给出异常的完整类名。paramname参数名的描述方法用来说明传递给一个方法的参数,其中包括参数的类型/类和用法。每个参数各有一个标记。return方法返回值的描述方法若方法有返回值,对该返回值进行说明。应说明返回值的类型/类和可能的用途。since类、方法例如:sinceJDK 1.1:说明自从有 JDK 1.1 以来,该项已存在了多长时间。see 类名类、接口、方法、字段在文档中生成指向特定类的超文本链接。可以并且应该采用完全合法的类名。seeClassName#memberfunctionName类、接口、方法、字段

26、在文档中生成指向特定方法的超文本链接。可以并且应该采用完全合法的类名。version版本号类、接口说明特定一段代码的版本信息。【规则2-2-2】类、接口头部必须进行注释。说明:注释必须列出:类、接口编号、名称、内容摘要等。类编号由功能模块编号和类名两部分组成,中间用“_”隔开,功能模块编号使用该类所在的功能模块的编号,类名用类的名称。例如:M01_Employee。正例:下面是类头部的中文注释:/* * 类编号:* 类名称: * 内容摘要:/说明主要功能。*author*/【规则2-2-3】公共方法前面应进行文档型注释。说明:注释必须列出:方法编号、主要功能、参数类型、输入参数、返回值、调用的

27、前置条件和后置条件、异常说明、关键算法、可见性决策等。正例:下面是公共方法头部的注释: /* 方法名称:* 内容摘要:列出主要功能、调用说明、异常说明、业务逻辑等 * param * return * throws */public String getName(String name)return name; 建议2-1Java语言中,公共的属性采用单行文档注释,对于需要比较多的声明的,可进行多行注释。说明:如果是Javadoc注释,属性可以采用文档型注释。正例:对于public型变量的单行声明:/* classVar1 对classVar1的声明 */public static int c

28、lassVar1;对于public型变量的多行声明:/* *classVar1 对classVar1的声明第一行 *对classVar1的声明第二行(继续对classVar1的声明) */public static int classVar1;对于public型变量的多行声明:/* *classVar1 对classVar1的声明第一行 *对classVar1的声明第二行(继续对classVar1的声明) */public static int classVar1;建议2-2通过对方法、变量等正确的命名以及合理地组织代码结构,使代码成为自注释的。说明:清晰准确的方法、变量的命名,可增加代码的可读性。建议2-3尽量避免在注释中使用缩写,特别是不常用缩写。说明:在使用缩写时,应对缩写进行必要的说明。3 命名规则好的命名规则能极大地增加可读性和可维护性。同时,对于一个有上百个人共同完成的大项目来说,统一命名约定也是一项必不可少的内容。本章对程序中的所有标识符(包括包、变量名、控件名、常量名、方法名、类名、接口等)的命名做出约定。三种命名规范说明:Pascal规范:第1个字符大写,目标名中的每个单词的第1个字母也大写,比如InvoiceNumber或者PrintInvoice。其他的所有字符都小写。Camel规范:第1个字符不大写,但目标名中的每个单词的第1个字母大写,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1