当前位置:  编程技术>java/j2ee

java开发命名规范总结

    来源: 互联网  发布时间:2014-10-28

    本文导语:  使用前注意事项:1、由于Java面向对象编程的特性, 在命名时应尽量选择名词 2、驼峰命名法(Camel-Case): 当变量名或函式名是由一个或多个单字连结在一起,而构成的唯一识别字时,首字母以小写开头,每个单词首字母大写(...

使用前注意事项:
1、由于Java面向对象编程的特性, 在命名时应尽量选择名词

2、驼峰命名法(Camel-Case): 当变量名或函式名是由一个或多个单字连结在一起,而构成的唯一识别字时,首字母以小写开头,每个单词首字母大写(第一个单词除外)。

如:myFirstName

一 包名的书写规范 (Package)
推荐使用公司或机构的顶级域名为包名的前缀,目的是保证各公司/机构内所使用的包名的唯一性。包名全部为小写字母,且具有实际的区分意义。

1.1 一般要求
1、选择有意义的名字,能快速地传达该类的用途。

2、所有包的命名必须采用小写英文字母。

1.2 实际应用
应用系统中经常应用分层,Dao层(数据库访问)、Service层(业务处理)、Web层(页面控制action类)。

1、包名的前几个为固定名称, 如果是网站的话,采用网站的域名的反写,如果域名还没有确定的话,采用公司固定的几个名称。如:net.vschool

2、在包名的接下来一个单词为模块的名称。如:用户模块,包名为net.vschool.user

3、关于模块的访问操作,采用分层形式,一般分为:

Dao层操作:一般定义在net.vschool.xxx.dao 中,其中xxx为模块名称。

Service层操作:一般定义在net.vschool.xxx.servie中。

web层操作:一般定义在 net.vschool.xxx.action中。

如下关于用户模块的例子:

net.vschool.user

net.vschool.user.dao

net.vschool.user.action

net.vschool.user.service

二 类名的书写规范 (Class)
类名必须使用名词,如果一个类名内含多个单词,那么各个单词第一个字母大写,后续字母小写,起伏呈驼峰状,人称驼峰式命名。给类名命名时,必须保证准确、简洁且容易理解。尽量使用完整单词,避免使用缩写词(除了大家公认的)

2.1 类的命名
2.1.1 一般要求
1、选择有意义的名字,能快速地传达该类的用途。

2、参照java驼峰命名法,类名的首字母必须采用大写的形式,如果类名为多词组合而成的话,那么每个词的首字母必须采用大写。如:StudentAnswer.java

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

如:接口类:UserInterface.java   接口实现类:UserInterfaceImp

4、推荐实体类没有后缀名。

2.1.2 实际应用
应用系统中经常应用分层,Dao层(数据库访问)、Service层(业务处理)、Web层(页面控制action类),每一层的类的名称尽量带上该层后缀。

1、Dao层

a、接口类:采用JavaBean+Interface+Dao的形式来定义,即,实体对象+Interface+Dao。  

如:用户对象接口类: UserInterfaceDao,其中xxx为模块名称。

b、实现类:采用JavaBean+Interface+Impl+Dao的形式来定义,即,实体对象        

+Interface+Impl+Dao。 如:用户对象实现类:UserInterfaceImplDao

2、Service层

a、接口类:采用Xxx+Interface+Service的形式来定义,即,模块+Interface+Service。    

如:用户管理接口类:UserMsgInterfaceServiec

b、实现类:采用Xxx+Interface+Impl+Service的形式来定义,即,模块+Interface+

Impl+Service。如:用户管理实现类:UserMsgInterfaceImplServiec

3、Web层(action类)

a、实现类:采用县 Xxx+Operator+Action的形式来定义,即,模块+操作+Action。如       

用户模块User+删除操作Delete+Action = UserDeleteAction

2.1 变量的命名
2.2.1 普通变量
2.2.2.1 一般要求
1、选择有意义的名字,能快速地传达该变量的用途。

2、参照java驼峰命名法,首字母以小写开头,每个单词首字母大写(第一个单词除外)。

2.2.2.2 实际应用
1、变量命名采用基本结构为typeVariableName,使用3字符前缀来表示数据类型。

例如,定义一个整形变量:intDocCount,其中int表明数据类型,后面为表意的英文名,每个单词首字母大写。

数据类型或对象类型

变量前缀

备注

byte

bye

1、做数组用时,再加前缀-a,如字符串数组:astr,

2、自定义类型的变量可以采用本身的名称,把首字母改为小写。

3、采用名称要能代表在方法中的意义。如果员工列表:employeeList

char

chr

float

flt

boolean

bln

Integer/int

int

short

sht

Long/long

lng

Double/double

dbl

string

str


2、变量使用技巧:

a、在一段函数中不使用同一个变量表示前后意义不同的两个数值。

b、除非是在循环中,否则一般不推荐使用单个字母作为变量名,i、j、k等只作为小型循环的循环索引变量。

c、避免用Flag来命名状态变量。

d、用Is来命名逻辑变量,如:blnFileIsFound。通过这种给布尔变量肯定形式的命名方式,使得其它开发人员能够更为清楚的理解布尔变量所代表的意义。 

e、如果需要对变量名进行缩写时,一定要注意整个代码中缩写规则的一致性。例如,如果在代码的某些区域中使用intCnt,而在另一些区域中又使用intCount,就会给代码增加不必要的复杂性。建议变量名中尽量不要出现缩写。  

2.2.2 静态变量
1、选择有意义的名字,能快速地传达该变量的用途。

2、参照java驼峰命名法,采用全部大写的形式来书写,对于采用多词合成的变量采用“_”来连接各单词。如:USER_LIST

2.3 方法的命名
2.3.1 一般要求
1、选择有意义的名字,能快速地传达该方法的用途。

2、参照java驼峰命名法,首字母以小写开头,每个单词首字母大写(第一个单词除外)。

2.3.2 实际应用
1、方法表示一种行为,它代表一种动作,最好是一个动词或者动词词组或者第一个单词为一个动词。

2、属性方法:以get/set开头,其后跟字段名称,字段名称首字母大写。如:getUserName()

3、数据层方法:只能以insert(插入),delete(删除),update(更新),select(查找),count(统计)开头,其他层方法避免以这个5个单词开头,以免造成误解。

4、服务层方法,根据方法的行为命名,只描述方法的意义,而不采用方法的目的命名。比如系统的添加新用户,用户可以前台注册,也可以管理员后台添加,方法会被重用,所以最好不要用使用register,采用add会更好写。避免使用与web层相关的方法。

5、Web层方法最好是贴近web的语言,如register,login,logout等方法。

三 注释的书写规范 (Javadoc)
Java除了可以采用我们常见的注释方式(//、/* */)之外,Java语言规范还定义了一种特殊的注释,也就是我们所说的Javadoc注释,以/**开头,而以*/结束, Javadoc 注释可以被自动转为在线文档,省去了单独编写程序文档的麻烦。 推荐使用。

Javadoc注释主要涉及范围:类、属性、方法。

例如:  

代码如下:

package org.ietf.jgss;

import java.net.InetAddress;

import java.util.Arrays;

/**

 * 该类的整体性描述。

 *

 * @author 作者

 * @version 1.0, 05/22/07

 * @since 1.0

 */

public class ChannelBinding {

/**

 * 对该变量的备注信息

 */

private InetAddress initiator;

/**

 * 对该变量的备注信息

 */

private InetAddress acceptor;

/**

 * 对该变量的备注信息

 */

    private  byte[] appData;

  

    /**

     * 对该类的构造函数的备注信息。

     *

     * @param initAddr 对参数的备注。

     * @param acceptAddr对参数的备注。

     * @param appData对参数的备注。

     */

    public ChannelBinding(InetAddress initAddr, InetAddress acceptAddr,

              byte[] appData) {

         initiator = initAddr;

         acceptor = acceptAddr;

         if (appData != null) {

              this.appData = new byte[appData.length];

              java.lang.System.arraycopy(appData, 0, this.appData, 0,

                   appData.length);

         }

    }

 

    /**

     * 对该类的具体一函数的备注信息

     *

     * @param obj 参数的备注信息

     * @return 返回值的备注信息

     */

    public boolean equals(Object obj) {

         if (this == obj)

              return true;

         if (! (obj instanceof ChannelBinding))

              return false;

         ChannelBinding cb = (ChannelBinding) obj;

         return Arrays.equals(appData, cb.appData);

    }

}


四 其他书写规范

4.1 Jsp页面名称的书写规范
1.全部采用小写的英文字符和”_ ”组成。

2.整体采用模块名+操作的形式。如:user_view.jsp

3.Jsp页面尽可能与action的意思对应,如UserListAction 对应者user_list.jsp


接口:

使用驼峰式命名。除了用名词外,还可以用形容词命名(体现其功能特性)

方法:

规定用动词命名,适合用驼峰式命名,但与类名的最大区别在于,首字母必须小写

变量:

规定为名词,其他同“方法”命名方式一样。变量名非常关键,应含有具体意义且易于理解,一般不允许使用单个字母做变量名。除非一些临时性变量,像在循环中使用到的计数器等。在使用单个字母做变量名时,一般I、J、K用来命名整形变量。

常量:

规定全用大写字母表示,如果名字必须用多个单词来表示,那么各单词间用“-“分隔。常量要求必须意义明确,能表达出常量的含义。


    
 
 

您可能感兴趣的文章:

  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • java文件重命名(文件批量重命名)实例程序代码分享
  • java命名空间java.text接口attributedcharacteriterator的类成员方法: getattribute定义及介绍
  • java 命名空间 命名规则第1/2页
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • Linux 下 java 的File类的renameTo()方法 不能重命名文件
  • java命名空间java.beans接口propertyeditor的类成员方法: getvalue定义及介绍
  • Java命名规则详细总结
  • java命名空间java.awt类container的类成员方法: getlayout定义及介绍
  • Java Web项目前端规范(采用命名空间使js深度解耦合)
  • java命名空间java.beans类defaultpersistencedelegate的类成员方法: defaultpersistencedelegate定义及介绍
  • java的命名规则默认是不是匈牙利命名法?
  • java命名空间java.text类decimalformat的类成员方法: topattern定义及介绍
  • Java实现文件批量重命名具体实例
  • java命名空间java.sql类types的类成员方法: null定义及介绍
  • java命名空间java.awt类awtevent的类成员方法: id定义及介绍
  • java命名空间java.text类choiceformat的类成员方法: choiceformat定义及介绍
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • java命名空间java.sql类driverpropertyinfo的类成员方法: value定义及介绍
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getuptime定义及介绍
  • java获取时间的方法总结
  • Java Map的几种循环方式总结
  • JAVA读取属性文件的几种方法总结
  • java map遍历的四种方法总结
  • java中的移位运算符心得总结
  • java中的十个大类总结
  • java中的正则操作方法总结
  • 基于java中正则操作的方法总结
  • 浅析java程序中hibernate的应用总结
  • Java中的小知识点总结
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 统计一下有多少商用软件用Java开发或者将要用Java开发
  • linux下用java开发是不是JB就可以,JAVA在LINUX下开发有优势吧!
  • 请问大家用什么开发java程序,我基本上学会了java语法,不知用什么来开发它?
  • Linux下面的开发好的Java程序,如何部署到其他机器?开发好的Java图形程序,终端上能否用?等问题
  • 开发java应用,用什么开发工具好呢?
  • 开发java程序在用什么开发环境比较好??大家都来谈谈
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • Linux下C语言开发与Windows下java开发,哪个更有前途?
  • 初学者的问题:目前我应该装那一个java开发工具,jbuilder7? JavaScript?有没有java2.0?现在软件公司开发用的是那一种?
  • 请问你们在LINUX下开发java,是怎么配置开发环境的啊?
  • 我是学习web开发的,主要是java开发SSH开发框架和ajax等。我想知道有没有必要学习一下linux相关知识。
  • 轻量级Java开发工具 Java Tools
  • 服务湍开发用linux c和java开发哪个性能更好
  • 我怎么没有在java的开发文档看到 Javax.servlet的开发包?在线等...........
  • 我该学习哪一种开发java的开发工具
  • 各位大虾现欲用java开发一套网上投票表决系统 应该看什么书?用什么开发工具?(一定给分!)
  • 求助:从java开发转到linux下C开发可行性
  • 腾讯微博的Java开发包 qq-t-java-sdk
  • 我初学java,请教各位开发java用什么工具好?
  • JAva的主要用来开发哪类软件呀,除了JAVA小程序以外?
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.security类keystore的类成员方法: getdefaulttype定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getclasspath定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: javaserializedobjectmimetype定义及介绍
  • 我对JAVA一窍不通,可惜别人却给我一个Java的project,要我做一个安装程序,请问哪里有JAVA INSTALLER下载,而且我要不要安装java的sdk才能完成此项任务?
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: javafilelistflavor定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3