分享一份网友整理的编程过程中的命名规范

包命名

包名按照域名的范围从大到小逐步列出,恰好和Internet上的域名命名规则相反。

由一组以“.”连接的标识符构成,通常第一个标识符为符合网络域名的两个或者三个英文小写字母。

People
TestPage
XMLExample

类,接口命名

类的名字必须由大写字母开头而单词中的其他字母均为小写;如果类名称由多个单词组成,则每个单词的首字母均应为大写例如TestPage;如果类名称中包含单词缩写,则这个所写词的每个字母均应大写,如:XMLExample,还有一点命名技巧就是由于类是设计用来代表对象的,所以在命名类时应尽量选择名词。

People
TestPage
XMLExample

方法名

方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头。可以为动词或动词+名词组合。

设置/获取某个值的Method,应该遵循setV/getV规范

返回长度的Method,应该命名为length

测试某个布尔值的Method,应该命名为isV

将对象转换为某个特定类型的Mehod应该命名为toF

getDate();
length();
isReady();
toOracleFormat();

变量名

  1. 普通变量命名应该采用首字母小写,其他字母首字母大写的方式。
  2. final static变量的名字应该都大写,并且指出完整含义。如果一个常量名称由多个单词组成,则应该用下划线来分割这些单词如。
NUM_DAYS_IN_WEEK
MAX_VALU

 3. 如果需要对变量名进行缩写时,一定要注意整个代码中缩写规则的一致性

context=ctx
message=msg

 4. 通过在结尾处放置一个量词,就可创建更加统一的变量

First(一组变量中的第一个)
Last(一组变量中的最后一个)
Next(一组变量中的下一个变量)
Prev(一组变量中的上一个)
Cur(一组变量中的当前变量)

 5. 无论什么时候,均提倡应用常量取代数字、固定字符串。也就是说,程序中除0,1以外,尽量不应该出现其他数字。

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

 7. 逻辑变量:避免用flag来命名状态变量,用is来命名逻辑变量。

if(isClosed){
dosomeworks;
return;
}

数组

总是使用以下方式定义数组:

int[] arr = new int[10];

禁止使用C语言的是形式:

禁止
int arr[] = new int[10];

集合

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

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

泛型

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

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

如果需要接收多个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; }

推荐的命名

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

interface Container

class ContainerImpl

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

DataNotFoundException

InvalidArgumentException

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

AbstractBeanDefinition

AbstractBeanFactory

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

ContainerTest

 5.简称与缩写(不推荐使用)

cp代表colorPoint

buf代表buffer

off代表offset

len代表length

除非是在循环中,否则一般不推荐使用单个字母作为变量名,不过也有例外,即约定俗成的单个字母

b代表byte

c代表char

d代表double

e代表Exception

f代表float

i, j, k代表整数

l代表long

o代表Object

s代表String

v代表某些类型的特定值

代码风格

花括号

花括号统一采用以下格式:

if(bool experssion){
dosomework;
}

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

if(i==0){
return;
}
while(true) {}

以下写法禁止出现:

禁止
if(i != 0) return;
禁止
if(i !=0) {return;}

括号

括号的前,后一个字符不需要空格,例如:

Person p = new Person(“Jack”, 17);

空格

  1. 逗号之后紧跟一个空格。
Person p = new Person(“Jack”, 16, “China”);

 2. 二元操作符前后跟空格。

int i = a + b – c * d;

 3. 一元操作符不需要空格,for语句分号后有空格。

for(int i = 0; I < 10; i++){
dosomework;
}

 4. 括号前后不需要空格

  1. 类的定义结构按照顺序为:

1)         常量

2)         成员变量

3)         构造函数

4)         成员函数

5)         get和set方法

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

例如:

规范类模板:
class Person{
private final static int MAX_AGE = 100; private String firstname = “Jack”; public Person(){}
public Person(String firstname){
this.firstname = firstname;
} public void doExercise(){
dosomeworks;
run();
}
private void run(){
dosomeworks;
} public getFirstname(){
return firstname;
}
public setFirstname(String firstname){
this.firstname = firstname;
}
}

 2.构造函数

1)         参数为空的构造函数出现在最上方

2)         有调用关系的构造函数相邻

3)         参数尽量由少到多从上至下排序

 3.使用成员变量

在类的方法内引用成员变量了命名冲突以外,不使用this。非特殊情况在类的方法内都不使用get和set方法存取成员变量。

 4.方法

有调用关系的方法尽量放在相邻的位置,public和private方法可以交叉放置。

 5.get和set方法,所有需要公开的成员变量都要符合良好的javabean规范,提供get和set方法,尽量使用IDE工具自动生成。

Javadoc注释

在每个程序的最开始部分,一般都用Javadoc注释对程序的总体描述以及版权信息,之后在主程序中可以为每个类、接口、方法、字段添加 Javadoc注释,每个注释的开头部分先用一句话概括该类、接口、方法、字段所完成的功能,这句话应单独占据一行以突出其概括作用,在这句话后面可以跟随更加详细的描述段落。在描述性段落之后还可以跟随一些以Javadoc注释标签开头的特殊段落,例如上面例子中的@auther和@version,这些段落将在生成文档中以特定方式显示

参考文档

Java命名规范

http://java.chinaitlab.com/base/834496.html

Java代码规范

http://www.doc88.com/p-733474983375.html

java应用命名规范

http://home.51.com/renjanely/diary/item/10051465.html

【J2SE系列】Java命名规范

http://my.oschina.net/iblike/blog/34100\

开发笔记:Java命名规范

http://blog.donews.com/maverick/archive/2005/10/12/585459.aspx

Java编程规范整理的更多相关文章

  1. JAVA编程规范(下)

    JAVA编程规范(下) 2016-03-27 6. 代码的格式化 6.1 对代码进行格式化时,要达到的目的 1.     通过代码分割成功能块和便于理解的代码段,使代码更容易阅读和理解: 2.     ...

  2. JAVA 编程规范(上)

    2016-03-20 J120-CHARLIEPAN JAVA 编程规范(上) 1.      应用范围 本规范应用于采用J2EE规范的项目中,所有项目中的JAVA代码(含JSP,SERVLET,JA ...

  3. Java编程规范(一)

    最近在看一本有关Java编程规范的书,书中精炼阐述了使用java语言时应该遵循的一些原则.接下来的一段时间我将在这里总结我的学习内容,也希望这一系列文章能够对有需要的人有所帮助. 不考虑任何编码规范的 ...

  4. Java编程规范(二)

    二.格式规范 在上一篇的java编程规范(一)中我们讲述了在Java编码中的一般原则,虽然这些原则并不涉及具体的代码规范,但是这些原则却是我们在Java开发过程中所应该遵循的规范与思想.今天我们将学习 ...

  5. FangDD Java编程规范

    我们采用<Oracle/Sun原生的Java编程规范>和<Google Java编程规范> Google Java编程风格指南 January 20, 2014 作者:Haws ...

  6. Java编程规范参考

    谷歌Java编程规范-原版 谷歌Java编程规范-中文翻译版 阿里巴巴Java编程规范 阿里巴巴Java编程规范-IDEA 插件 阿里巴巴Java编程规范-Eclipse 插件

  7. 乐字节Java变量与数据类型之一:Java编程规范,关键字与标识符

    大家好,我是乐字节的小乐,这次要给大家带来的是Java变量与数据类型.本文是第一集:Java编程规范,关键字与标识符. 一.编程规范 任何地方的名字都需要见名知意: 代码适当缩进 书写过程成对编程 对 ...

  8. 阿里巴巴Java编程规范考试

    阿里巴巴Java编程规范考试 今天在阿里云官网把阿里巴巴Java编程规范认证考试考过了, 写下这篇文章总结一下考试中需要注意的知识点, 主体内容还是要直接看规范: 编程规约 异常日志 单元测试 安全规 ...

  9. java编程规范大全

    JAVA编程规范大全 命名规范 定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,减少项目组中因为换人而带来的损失.(这些规范并不是一定要绝对遵守,但是一定要让程序有良好的可读性 ...

随机推荐

  1. Android 自定义View修炼-【2014年最后的分享啦】Android实现自定义刮刮卡效果View

    一.简介: 今天是2014年最后一天啦,首先在这里,我祝福大家在新的2015年都一个个的新健康,新收入,新顺利,新如意!!! 上一偏,我介绍了用Xfermode实现自定义圆角和椭圆图片view的博文& ...

  2. TCP/IP协议原理与应用笔记14:电路交换 和 分组交换

    1. 电路交换: (1)建立连接 (2)数据传输 (3)拆除连接 2. 分组交换 (1)数据报: 根据网络的特性,将数据报分成不同大小的部分,经过不同网路传递到相同的目的地.如下: 这里A--X  和 ...

  3. WPF在后台中写一个鼠标移入移出的操作

    在这个问题上我纠结了好久就是为了一个问题就是forebackground这个属性 lblPwd.Foreground = Brushes.Black;我以前一直以为是fontground这个属性可是我 ...

  4. Java json工具类,jackson工具类,ObjectMapper工具类

    Java json工具类,jackson工具类,ObjectMapper工具类 >>>>>>>>>>>>>>> ...

  5. VS2013+SVN管理

    进入新公司,大部分员工使用的是VS2013 ,所以搜集了下支持VS2013的一些SVN工具,现在发布到园子,供大家使用. CodeMaid插件,能够很好的格式化代码,强迫症的最爱: TortoiseS ...

  6. Asp.net中前台javascript与后台C#交互

    方法一:使用Ajax开发框架,后台方法定义前添加[AjaxPro.AjaxMethod],然后就可以在前台js脚本中调用后台C#函数. 方法二:后台方法声明为public或者protected,然后前 ...

  7. meteor中分页库alethes:pages用法汇总

    1.添加分页库: meteor add alethes:pages 2.新建分页: Pages = new Meteor.Pagination("collection-name") ...

  8. 二、 What's Maven,How to learning?

    1. 哈哈,什么是Maevn, ←_←|| ?我怎么知道,来看看官方解释, Apache Maven is a software project management and comprehensio ...

  9. swift变量交换赋值

    重点在& func jiaohuan(inout a: Int,inout b: Int) { let temp = a a = b b = temp } jiaohuan(&aa,b ...

  10. Python GUI with Tkinter (from youtube) 在youtube上能找到很多编程视频...

    Python GUI with Tkinter - 1 - Introduction以上链接是一个python tkinter视频系列的第一讲的链接.虽然英语不好,但是,程序还是看得懂的(照着做就可以 ...