- 浏览: 142288 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
z360194753:
够详细了
io流 -
yang1527866:
挺详细的
io流 -
anttu:
...
从键盘输入数据 -
haha12333:
谢啦~~~~~
myeclipse 更改项目名 -
幽奇猫:
got it.
thx very much.
foreach
JAVA 编程规范
1. 应用范围
本规范应用于采用J2EE规范的项目中,所有项目中的JAVA代码(含JSP,SERVLET,JAVABEAN,EJB)均应遵守这个规范。同时,也可作为其它项目的参考。
2. 设计类和方法
2.1 创建具有很强内聚力的类
方法的重要性往往比类的重要性更容易理解,方法是指执行一个统一函数的一段代码。类常被错误的视为是一个仅仅用于存放方法的容器。有些开发人员甚至把这种思路作了进一步的发挥,将他们的所有方法放入单个类之中。
之所以不能正确的认识类的功能,原因之一是类的实现实际上并不影响程序的执行。当一个工程被编译时,如果所有方法都放在单个类中或者放在几十个类中,这没有任何关系。虽然类的数量对代码的执行并无太大的影响,但是当创建便于调试和维护的代码时,类的数量有时会带来很大的影响。
类应该用来将相关的方法组织在一起。
当类包含一组紧密关联的方法时,该类可以说具有强大的内聚力。当类包含许多互不相关的方法时,该类便具有较弱的内聚力。应该努力创建内聚力比较强的类。
大多数工程都包含许多并不十分适合与其他方法组合在一起的方法。在这种情况下,可以为这些不合群的方法创建一个综合性收容类。
创建类时,应知道“模块化”这个术语的含义是什么。类的基本目的是创建相当独立的程序单元。
2.2 创建松散连接和高度专用的方法
1. 使所有方法都执行专门的任务
每个方法都应执行一项特定的任务,它应出色的完成这项任务。应避免创建执行许多不同任务的方法。
创建专用方法有许多好处。首先调试将变得更加容易。
2. 尽量使方法成为自成一体的独立方法
当一个方法依赖于其他方法的调用时,称为与其他方法紧密连接的方法。紧密连接的方法会使调试和修改变得比较困难,因为它牵涉到更多的因素。松散连接的方法优于紧密连接的方法,但你不可能使每个方法都成为独立的方法。
若要使方法具备较强的独立性,方法之一是尽量减少类变量。
创建方法时,设法将每个方法视为一个黑箱,其他例程不应要求了解该方法的内部工作情况,该方法也不应要求了解它外面的工程情况。这就是为什么你的方法应依靠参数而不应依靠全局变量的原因。
创建专用方法时,请考虑下列指导原则:
1) 将复杂进程放入专用方法。如果应用程序使用复杂的数学公式,请考虑将每个公式放入它自己的方法中。这样使用这些公式的其他方法就不包含用于该公式的实际代码。这样也可以更容易发现与公式相关的问题。
2) 将数据输入/输出(I/O)放入专用方法。
3) 将专用方法中可能要修改的代码隔离。如果你知道某个进程经常变更,请将这个多变的代码放入专用方法,以便以后可以更容易的进行修改,并减少无意中给其他进程带来问题的可能性。
4) 将业务规则封装在专用方法中。业务规则常属于要修改的代码类别,应与应用程序的其余部分隔开。其他方法不应知道业务规则,只有要调用的方法才使用这些规则。
3. 设计类和方法时,要达到下列目的:
1) 创建更加容易调试和维护的方法
2) 创建具有强大内聚力的类
3) 创建高度专用的方法
4) 创建松散连接的方法
5) 尽量使方法具有独立性
6) 提高方法的扇入性
7) 降低方法的扇出性
2.3 编程原则
1. 为方法和类赋予表义性强的名字
为了使代码更加容易理解,最容易的方法之一是为你的方法赋予表义性强的名字。函数名DoIt、GetIt的可读性很难与CalculateSalesTax、 RetrieveUserID相比。
由缩写方法名组成的代码很难理解和维护,没有理由再这样做了。
给方法正确的命名,可使程序工程的调试和维护工作大大的改观。请认真对待方法命名的工作,不要为了减少键入操作量而降低方法的可理解度。
实际应用举例:
1) 给方法命名时应大小写字母混合使用。如果句子全使用大写字母,那么阅读起来就非常困难,而大小写字母混合使用的句子,阅读起来就很容易。
2) 定义方法名时不要使用缩写。如果你认为应用程序中的某些工程应使用缩写,那么请将这些情况加上注释,并确保每个人在所有时间内都使用这些缩写。决不要在某些方法中对某些单词进行缩写,而在别的方法中却不使用缩写。
2. 为每个方法赋予单个退出点
3. 创建方法时,始终都应显式地定义它的作用域。
1) 如果你真的想创建一个公用方法,请向代码阅读者说明这一点。
2) 通过为每个方法赋予一个明确定义的作用域,可以减少代码阅读者需要投入的工作量。应确保你为方法赋予最有意义的作用域。如果一个方法只被同一类中的另一个方法调用,那么请将它创建成私有方法。如果该方法是从多个类中的多个方法中调用,请将该说明为公用方法。
4. 用参数在方法之间传递数据
应尽量避免使用类变量。一般来说,变量的作用域越小越好。为了减少类变量,方法之一是将数据作为参数在不同方法之间传递,而不是让方法共享类变量。
1) 为每个参数指定数据类型。
2) 始终要对数进行检验,决不要假设你得数据没有问题。程序员常犯的一个错误是在编写方法时假设数据没有问题。在初始编程阶段,当编写调用方法时,这样的假设并无大碍。这时你完全能够知道什么是参数的许可值,并按要求提供这些值。但如果你不对参数的数据进行检验,那么下列情况就会给你带来很大麻烦:另外某个人创建了一个调用方法,但此人不知道允许的值;你在晚些时候添加了新的调用方法,并错误的传递了坏数据。
3. 命名约定
所有变量的定义应该遵循匈牙利命名法,它使用3字符前缀来表示数据类型,3个字符的前缀必须小写,前缀后面是由表意性强的一个单词或多个单词组成的名字,而且每个单词的首写字母大写,其它字母小写,这样保证了对变量名能够进行正确的断句。
这样,在一个变量名就可以反映出变量类型和变量所存储的值的意义两方面内容,这使得代码语句可读性强、更加容易理解。
3.1 包、类及方法命名
标示符类型 |
命名约定 |
例子 |
包 |
l 全部小写。 l 标识符用点号分隔开来。为了使包的名字更易读,Sun 公司建议包名中的标识符用点号来分隔。 l Sun 公司的标准 java 分配包用标识符 .java 开头。 l 全局包的名字用你的机构的 Internet 保留域名开头 。 |
局部包: interface.screens 全局包: com.rational.www. interface.screens |
类,接口 |
l 类的名字应该使用名词。 l 每个单词第一个字母应该大写。 l 避免使用单词的缩写,除非它的缩写已经广为人知,如HTTP。 |
Class Hello ; Class HelloWorld ; Interface Apple ; |
方法 |
l 第一个单词一般是动词。 l 第一个字母是小些,但是中间单词的第一个字母是大写。 l 如果方法返回一个成员变量的值,方法名一般为get+成员变量名,如若返回的值是bool变量,一般以is作为前缀。 l 如果方法修改一个成员变量的值,方法名一般为:set + 成员变量名。 |
getName(); setName(); isFirst(); |
变量 |
l 第一个字母小写,中间单词的第一个字母大写。 l 不要用_或&作为第一个字母。 l 尽量使用短而且具有意义的单词。 l 单字符的变量名一般只用于生命期非常短暂的变量。i,j,k,m,n一般用于integers;c,d,e一般用于characters。 l 如果变量是集合,则变量名应用复数。 l 命名组件采用匈牙利命名法,所有前缀均应遵循同一个组件名称缩写列表。 |
String myName;
int[] students; int i; int n; char c;
btNew; (bt是Button的缩写) |
常量 |
l 所有常量名均全部大写,单词间以‘_’隔开。 |
int MAX_NUM; |
3.2 其它
开发人员如果遇到上述表格中未列举的类型,请书面通知相关管理人员,由管理人员集中更新列表内容,不得擅自启用未经确定的新变量前缀。
4. 使用常量
4.1 使用常量
1. 常数很容易在数据输入时出错
常数存在的主要问题之一是你很容易在键入数字时出错,从而颠倒了数字的位置。例如,当你键入数字10876时,很容易的键入10867或18076。与处理变量和保留字的方法不同,编译器并不在乎颠倒了位置和不正确的数字,有时简单的错误造成的问题不会立即表现出来,而当问题表现出来时,它们会以随机的计算错误的形式出现,这些错误很难准确定位。用常量来取代常数时,编译器将在编译时检查常量的有效性。如果常量不存在,编译器便将这一情况通知你,并拒绝进行编译,这可以消除错误键入的数字带来的问题,只要常量拥有正确的值,使用该常量的所有代码也有使用该正确值。
2. 常数很难不断更新
3. 常量使代码更容易阅读
使用常量后,得到的一个额外好处是可使创建的代码更容易阅读。常数很不直观。也许你对常数非常了解,但其他人则根本看不明白。通过合理的给常量命名,使用这些常量的代码就变得比较直观了,更容易阅读。
为常量赋予较宽的作用域,这与使用变量时的情况不同。在一个应用程序中你决不应该两次创建相同的常量。如果你发现自己复制了一个常量,请将原始的常量说明转至较宽的作用域,直到该常量可供引用它的所有方法为止。
5. 变量
5.1 定义有焦点的变量
用于多个目的的变量称为无焦点(多焦点)的变量。无焦点变量所代表的意义与程序的执行流程有关,当程序处于不同位置时,它所表示的意义是不固定的,这样就给程序的可读性和可维护性带来了麻烦。
5.2 只对常用变量名和长变量名进行缩写
如果需要对变量名进行缩写时,一定要注意整个代码中缩写规则的一致性。例如,如果在代码的某些区域中使用Cnt,而在另一些区域中又使用Count,就会给代码增加不必要的复杂性。
变量名中尽量不要出现缩写。
5.3 使用统一的量词
通过在结尾处放置一个量词,就可创建更加统一的变量,它们更容易理解,也更容易搜索。例如,请使用strCustomerFirst和strCustomerLast,而不要使用strFirstCustomer和strLastCustomer。
量词列表:
量词后缀 |
说明 |
First |
一组变量中的第一个 |
Last |
一组变量中的最后一个 |
Next |
一组变量中的下一个变量 |
Prev |
一组变量中的上一个 |
Cur |
一组变量中的当前变量 |
5.4 使用肯定形式的布尔变量
给布尔变量命名时,始终都要使用变量的肯定形式,以减少其它开发人员在理解布尔变量所代表的意义时的难度。
5.5 为每个变量选择最佳的数据类型
这样即能减少对内存的需求量,加快代码的执行速度,又会降低出错的可能性。用于变量的数据类型可能会影响该变量进行计算所产生的结果。在这种情况下,编译器不会产生运行期错误,它只是迫使该值符合数据类型的要求。这类问题极难查找。
5.6 尽量缩小变量的作用域
如果变量的作用域大于它应有的范围,变量可继续存在,并且在不再需要该变量后的很长时间内仍然占用资源。
它们的主要问题是,任何类中的任何方法都能对它们进行修改,并且很难跟踪究竟是何处进行修改的。
占用资源是作用域涉及的一个重要问题。对变量来说,尽量缩小作用域将会对应用程序的可靠性产生巨大的影响。
6. 代码的格式化
6.1 对代码进行格式化时,要达到的目的
1. 通过代码分割成功能块和便于理解的代码段,使代码更容易阅读和理解;
2. 使用空行和注释行,将程序中逻辑上不相关的代码块分开。比如:变量声明部分和代码语句间的分隔;较长的方法中,完成不同功能的代码块间的分隔。要避免出现逻辑上混乱的分隔,如:某一逻辑功能代码块中间用空行进行了分隔,但是在相邻功能代码块之间却没有分隔,这样会给程序阅读者造成错觉。
3. 减少为理解代码结构而需要做的工作;
4. 使代码的阅读者不必进行假设;
5. 使代码结构尽可能做到格式清楚明了。
6.2 编程原则
1. 要将多个语句放在同一行上
不论是变量声明,还是语句都不要在一行上书写多个。
2. 缩进后续行
当你将变量设置为某个值时,所有后续行的缩进位置应与第一行的变量值相同;
当你调用一个方法时,后续行缩进到第一个参数的开始处;
当你将变量或属性设置为等于表达式的计算结果时,请从后面分割该语句,以确保该表达式尽可能放在同一行上。
3. 在if语句后缩进;
在else语句后缩进
在switch语句后缩进
在case语句后缩进
在do句后缩进
已经用行接续符分割的语句的各个行要缩进
对从属于行标注的代码进行缩进。
4. 在执行统一任务的各个语句组之间插入一个空行。好的代码应由按逻辑顺序排列的进程或相关语句组构成。
7. 代码的注释
7.1 使用代码注释的目的
1. 文字说明代码的作用(即为什么要用编写该代码,而不是如何编写);
2. 确指出该代码的编写思路和逻辑方法;
3. 人们注意到代码中的重要转折点;
4. 使代码的阅读者不必在他们的头脑中仿真运行代码的执行方法.
7.2 编程原则
1. 用文字说明代码的作用:
简单的重复代码做写什么,这样的注释几乎不能给注释增加什么信息.如果你使用好的命名方法来创建直观明了的代码那么这些类型的注释绝对增加不了什么信息.
发表评论
-
关于类的初始化顺序
2010-08-20 09:32 688一、一个类中 1、静态变量、静态初始化块 //次两者由书写 ... -
同步异步
2010-08-18 06:31 1078同步和异步的区别 举个例子:普通B/S模式(同步)AJAX技术 ... -
String与StringBuffer
2010-08-18 06:22 8631、String String代表字符 ... -
static块
2010-08-05 16:08 7251、static块与static的联系 static int ... -
开发中的乱码处理
2010-08-05 15:14 835开发环境中的编码要统一:页面、数据库、servlet、js都为 ... -
简述java动态代理
2010-08-01 16:26 921一、动态代理简单实现 1、代理类要实现java.lang.r ... -
System.getProperty()
2010-07-31 22:53 703From jdk 1.5.0 documents j ... -
java 日期格式化
2010-07-17 07:56 10741、从数据库里取出Date类型的数据进行格式化 Date d ... -
jsp+servlet分页
2010-04-07 06:45 14151、servlet String pageS ... -
include和forward的区别:
2010-04-06 02:34 1231include和forward的区别: incl ... -
StringBuilder取代StringBuffer
2010-04-02 13:40 739区别在于前者线程不安全 可变的字符 ... -
java filter过滤器乱码问题
2010-03-26 13:18 1316public void doFilter(ServletReq ... -
<转载><感谢>Servlet路径问题
2010-03-25 11:22 1459你的应用访问地址是"http://192.168.0 ... -
java路径问题
2010-03-25 10:50 794一、servlet路径 webapp/ //当前Web工 ... -
Iterator 迭代器 fail-fast
2010-03-24 14:15 1249一、Collection 接口的itera ... -
集合类选择
2010-03-19 05:53 708HashSet、HashMap采用哈希结构,速度快 Arra ... -
TreeSet类compareTo()方法重写
2010-03-12 17:39 28161、TreeSet判断两个对象不等的条件: 两个对 ... -
数组初始化
2010-03-12 03:39 858一、定义数组 type[] arrayName; ... -
集合元素的遍历
2010-03-12 03:13 779public void Function() { ... -
集合类
2010-03-11 17:32 819...
相关推荐
JAVA编程规范.pdf 本文档提供了JAVA编程规范的详细说明,涵盖了类和方法的设计、编程原则、命名约定等方面的内容。 类和方法的设计 在设计类和方法时,需要遵守一些基本原则。首先,类应该具有强大的内聚力,即类...
《Java编程规范详解》 在软件开发领域,编码规范是一种约定俗成的规则,旨在提升代码的可读性、可维护性和团队协作效率。Java编程规范是Java开发者遵循的重要指导原则,它涵盖了文件命名、文件组织、代码结构、缩进...
华为JAVA编程规范汇编.pdf
### Java编程规范与基本原则 #### 一、引言 Java作为一种广泛应用的编程语言,其代码的质量不仅直接影响到软件系统的稳定性与可维护性,而且对于团队协作有着不可忽视的影响。因此,建立一套统一且高效的编程规范...
Java编程规范 Java编程规范是Java程序员在编写代码时需要遵循的一些约定俗成的命名规定,旨在提高Java程序的可读性和维护性。这些规范包括了包命名规范、类命名规范、接口命名规范、方法命名规范、变量命名规范和...
通过遵循Google Java编程规范,开发人员可以编写出更加规范、一致且易于维护的代码。这些规范不仅涵盖了编码格式和样式方面的要求,还涉及到了一些最佳实践和约定,这对于构建高质量的软件系统至关重要。
《Java编程规范(第3版)》是一本深入探讨Java编程语言最佳实践、代码风格、设计模式以及编码标准的专业书籍。对于任何希望提高其Java编程技能、编写可维护且高效代码的开发人员来说,这本书都是不可或缺的资源。...
Java编程规范是软件开发过程中非常重要的一个环节,它旨在提高代码质量、可读性、可维护性和团队协作效率。这份名为"JAVA编程规范.rar"的压缩包文件包含了一个PDF文档,很可能是Oracle官方或者业界广泛认可的Java...
【Java编程规范】是指导Java开发者遵循的一套标准和最佳实践,旨在提高代码质量、可读性和可维护性。这份规范适用于基于J2EE规范的项目,但不限于这些项目,可以广泛应用于各种Java开发场景。 2. **设计类和方法** ...
JAVA编程规范 方法的重要性往往比类的重要性更容易理解,方法是指执行一个统一函数的一段代码。类常被错误的视为是一个仅仅用于存放方法的容器。有些开发人员甚至把这种思路作了进一步的发挥,将他们的所有方法放入...
阿里Java编程规范是Java开发者在阿里巴巴集团内部遵循的一套编码标准和最佳实践,旨在提高代码质量和团队协作效率。这份规范不仅适用于阿里巴巴内部,也被广大Java开发者视为提高代码质量的重要参考。下面将根据提供...
Java编程的标准之JAVA编程规范,提升编程代码水准,学习java不可或缺
《JAVA编程规范(免费版)》是一本指导程序员遵循统一编码风格的重要参考资料,旨在提高代码的可读性、可维护性和团队协作效率。规范涵盖了文件命名、文件组织、代码结构和格式等多个方面。 首先,编码规范的重要性...
华为Java编程规范的知识点主要包括编码排版规范、注释规范以及类和接口的组织结构等方面的内容。 在编码排版规范方面,华为推荐的Java编程规范强调了使用统一的代码格式来提高代码的可读性。具体规则如下: 1. ...
《Java编程规范》第三版是一本详细介绍Java编程语言规范的经典书籍。本书由Java之父James Gosling以及Bill Joy、Guy Steele和Gilad Bracha等人编著,中文版由陈宗虹和沈金河翻译。该书是国际经典程序设计系列的一...
《Java编程规范(第三版)》是一本针对Java程序员的重要参考书籍,旨在提升代码质量、增强可读性和可维护性。编程规范是软件开发中的基石,它为团队合作提供了统一的标准,确保代码的一致性和专业性。这本书深入探讨...