关闭

Java命名规范和编程风格

74人阅读 评论(0) 收藏 举报
分类:

一 命名规范

1.包的命名

小写单词组成

b 加上惟一的前缀。一般采用自己在互联网上的域名作为自己程序包的惟一前缀。

c 格式 “com.公司名.项目名.模块名....”

e.g:net.frontfree.javagroup

附:


indi:个体项目,指个人发起,但非自己独自完成的项目,可公开或私有项目,copyright主要属于发起者。

   包名为“indi.发起者名.项目名.模块名.……”。

pers :

   个人项目,指个人发起,独自完成,可分享的项目,copyright主要属于个人。

   包名为“pers.个人名.项目名.模块名.……”。

priv :

   私有项目,指个人发起,独自完成,非公开的私人使用的项目,copyright属于个人。

   包名为“priv.个人名.项目名.模块名.……”。

team :

   团队项目,指由团队发起,并由该团队开发的项目,copyright属于该团队所有。

   包名为“team.团队名.项目名.模块名.……”。

com :


    公司项目,copyright由项目发起的公司所有。

   包名为“com.公司名.项目名.模块名.……”。




2.类的命名

a 大写字母开头,一个单词中的其他字母均为小写。

b 将每个单词的首字母均用大写,例如TestPage

c 包含单词缩写,则建议将这个词的每个字母均用大写,如:XMLExample

d 类名尽量选择名词。

3.方法的命名

a 以小写字母开头,后面的单词则建议用大写字母开头。驼峰式。

e.g: sendMessge()

4.常量的命名

a 都使用大写字母,并且指出该常量完整含义。

b  多个单词用下划线来分割。

e.g:MAX_VALUE

5.参数的命名

a 参数的命名规范和方法的命名规范相同,参数的命名尽可能明确。

6Javadoc注释

Java除了可以采用常见的注释方式之外,Java语言规范还定义了一种特殊的注释,也就是通常所说的Javadoc注释,它是用来记录代码中的API的。Javadoc注释是一种多行注释,以/**开头,而以*/结束,注释可以包含一些HTML标记符和专门的关键词。使用Javadoc注释的好处是编写的注释可以被自动转化为在线文档,省去了单独编写程序文档的麻烦。

例如:

/**
*This is an example of
* Javadoc
*
*@author darchon
*@version 0.1, 10/11/2002
*/

a.在每个程序的最开始部分,一般都用Javadoc注释进行程序的总体描述以及版权信息。b.在主程序中可以为每个类、接口、方法、变量添加Javadoc注释,每个注释的开头部分先用一句话概括该类、接口、方法、变量所完成的功能,这句话应单独占据一行以突出其概括作用,在这句话后面可以跟随更加详细的描述段落。

c.在描述性段落之后还可以跟随一些以Javadoc注释标签开头的特殊段落,例如上面例子中的@auther@version,这些段落将在生成的文档中以特定方式显示。

e.g:

   

   

    

   

Int

序列号

全局范围

globalID

(类)

用户账单

(类)

UserReckoning

String

用户名称

类成员

userName

Float

当月收入

类成员

currentMonHarvest

Static final

最大金额

类成员

MAX_MONEY

Double

罚款

局部变量

smartMoney

(包)

用户

(包)

user

 

7 集合命名


数组或者容器推荐命名方式为名词+s的方式,例如:

List<Person> persons = getPerson();
for(Person person : persons){
dosomeworks;
}

8 泛型命名


a.应该尽量简明扼要(最好是一个字母),以利于与普通的class或interface区分

Container中的Element应该用E表示;Map里的key用K表示,value用V;Type用T表示;异常用X表示

b.如果需要接收多个Type类型的参数,应该用邻接T的大写字母——例如S——来依次表示,当然也可以用T1, T2这样的方式

public
class HashSet<E> extends AbstractSet<E> {…}

public
class HashMap<K, V> extends AbstractMap<K, V> {…}

public
class ThreadLocal<T> {…}

public
interface Functor<T, X extends Throwable> {

T val() throws X;

}

8.逻辑变量:避免用flag来命名状态变量,用is来命名逻辑变量。
if(isClosed){
dosomeworks;
return;
}

9 部分推荐命名

a.当要区别接口和实现类的时候,可以在类的后面加上“Impl”。

interface Container

class ContainerImpl

 b.Exception类最好能用“Exception”做为类命名的结尾

DataNotFoundException

InvalidArgumentException

 c.抽象类最好能用“Abstract”做为类命名的开头

AbstractBeanDefinition

AbstractBeanFactory

 d.Test类最好能用“Test”做为类命名的结尾

ContainerTest


二 编码风格

1.提倡应用常量取代数字、固定字符串。

2.索引变量:i、j、k等只作为小型循环的循环索引变量。

3.数组

a. int[] arr = new int[10]; 一前一后

b.尽量指定大小避免浪费空间

4.除非花括号中为空,不然任何情况下不能省略花括号,并且花括号必须换行

5.类定义顺序

1)         常量

2)         成员变量

3)         构造函数

4)         成员函数

5)         get和set方法

各个部分之间留出一个空行。

6. 中间打空格

 括号的前,后一个字符不需要空格,例如:Person p = new Person(“Jack” 17);

7.写无参构造函数
8.尽量拆分成简单易懂的小方法,当有多个异常时尽量分开写。

9 不要使用io.*的形式

10 异常捕获后记得加finally关闭文件

参考网址:


http://www.cnblogs.com/coolhwm/archive/2012/03/22/2411811.html

http://blog.csdn.net/changemyself/article/details/22160361


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3302次
    • 积分:130
    • 等级:
    • 排名:千里之外
    • 原创:8篇
    • 转载:14篇
    • 译文:0篇
    • 评论:1条
    文章分类
    文章存档
    最新评论