版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1/1java程序书写规范java程序书写规范命名规范1、一般概念1、尽量使用完整的英文描述符2、采用适用于相关领域的术语3、采用大小写混合使名字可读4、尽量少用缩写,但如果用了,必须符合整个工程中的统一定义5、避免使用长的名字(小于15个字母为正常选择)6、避免使用类似的名字,或者仅仅是大小写不同的名字7、避免使用下划线(除静态常量等)2、标识符类型说明1、包(Package)的命名Package的名字应该采用完整的英文描述符,都是由一个小写单词组成。
并且包名的前缀总是一个顶级域名,通常是com、edu、gov、mil、net、org等;如:
com.yjhmily.test2、类(Class)的命名类名应该是个一名词,采用大小写混合的方式,每个单词的首字母大写。
尽量保证类名简洁而富于描述。
使用完整单词,避免缩写词(除非工程内有统一缩写规范或该缩写词被更广泛使用,像URL,HTML)如:
FileDescription3、接口(Interface)的命名基本与Class的命名规范类似。
在满足Classd命名规则的基础之上,保证开头第一个字母为I,便于与普通的Class区别开。
其实现类名称取接口名的第二个字母到最后,且满足类名的命名规范;如:
IMenuEngine4、枚举(Enum)的命名基本与Class的命名规范类似。
在满足Classd命名规则的基础之上,保证开头第一个字母为E,便于与普通的Class区别开。
如:
EUserRole5、异常(Exception)的命名异常(Exception)通常采用字母e表示异常,对于自定义的异常类,其后缀必须为Exception如:
BusinessException6、方法(Method)的命名方法名是一个动词,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。
方法名尽可能的描述出该方法的动作行为。
返回类型为Boolean值的方法一般由is或has来开头如:
getCurrentUser()、addUser()、hasAuthority()7、参数(Param)的命名第一个单词的首字母小写,其后单词的首字母大写。
参数量名不允许以下划线或美元符号开头,虽然这在语法上是允许的。
参数名应简短且富于描述。
如:
publicUserContextgetLoginUser(StringloginName);8、常量字段(Constants)的命名静态常量字段(staticfinal)全部采用大写字母,单词之间用下划线分隔;如:
publicstaticfinalLongFEEDBACK;publicstaticLongUSER_STATUS;1.风格务必保持一贯性(Consistent)一位同胞顶着我的鼻子问,为什么我们的Java代码缩进格式非得是这样,而不能是他那样,他就是喜欢他自己的这一种,因此他写的代码总是用他自己习惯的风格。
结果在CodeReview里被大家毙掉,责令修改。
因此他是大大地不服。
就是风格一贯性问题。
其实他的风格,本来也没有什么问题,但在项目里,和其他程序员的程序的风格,显得扃异,那就存在问题了。
比如这个缩进,又比如变量命名方法,不同的类,不同的Methods里,各自不同,这程序就很难看了。
所以一旦你选择了某种风格,一定要贯彻始终。
如果一个项目里规定了一个风格,即便很不符合你自己的习惯,也要贯彻始终,绝不应该有标新立异。
2.缩进风格(indent)既然是从缩进说起,就先说说缩进风格;一般来说,象Java这样的类C语言,都采用缩进风格。
而常用的,有四种A.KR风格这是C程序最早的缩进风格,由C的发明者Ritchie和他的合作者Kernighan率先使用:
if(cond){body}其特点,是大括号和if判断在同一行。
通常,缩进为8个空格或一个tab键,但在C++和Java里,也常缩进4个空格。
有人喜欢用两个空格,窃以为不好,不明显。
B.BSD风格又称AllmanStyle,源自UnixBSD程序员EricAllman--他为BSD写过很多程序:
if(cond){body}特点:
大括号和条件判断分在两行。
C.Whitesmith风格这种风格源于WhitesmithC:if(cond){body}D.GNU风格这种风格仅见于GNUEMACS的源程序中:
if(cond){body}那么在Java里用哪种好呢?建议只采用A或B。
SUN有一个JavaCodeNameConvention,建议的是A。
3.Tab还是空格(TabsvsSpace)还是缩进问题。
那么一次缩进应该多大距离?是八个空格键,还是一个Tab键?Java有一个特点,就是跨平台性。
不过跨平台指的是它的Class可以在不同平台的虚拟机上运行。
Java的源程序,有时候可不是跨平台的。
什么?源程序还能不跨平台?是的。
有次一个程序员送来一些Code,在我的环境里打开,程序难看得一塌糊涂,有该缩进的地方,没有缩进,有的则缩进一大截,如同怪石一样,嶙峋参差。
这样的代码质量可不行!叫来程序员一问,答曰在他那里漂亮得很啊,他还专门花时间去美化它们了呢?原来他的缩进没有注意一个风格,在有的地方用Tab键,有的地方打空格。
在一些不同的平台上,Tab键的宽度可是不一样的。
说道这里,相信大家比较清楚了,在缩进的时候,尽量不用Tab,而是用空格。
好在许多编辑器,都可以把你的键盘上的Tab键定义成几个空格。
赶紧去定义它!每次用多少空格呢?4个。
2个太少不明显,8个太多占空间。
4.行宽说道8个空格键占空间,那么我一行有320列,8个空格算什么?打住!请寄住,一行尽量不要超过80列。
许多终端一个屏幕只能显示80列,为它们想想巴。
如果你的语句太长,想办法折断它,分几列来写。
5.变量命名SUNJavaCodeConvention里定义了Java里package,class,method和普通变量的命名规则,我就不用再浪费字节了。
这里提提一些注意事项和一些SUN没提到但大家常用的方式。
a.用有意义的名字命名变量首先,用完整的英语单词或约定俗成的简写命名你的变量,如:
firstNamezipCode如果英语不够好,至少用别人看得懂的拼音命名,如zhuZhi(住址)胡乱简写,或者胡乱命名,则没有人看得懂你的变量的含义:
fnzczzb.常量用全大写加下画线命名Java里的常量,就是staticfinal:staticfinalSMTH_BBS=bbs.tsinghua.edu.cn;c.用复数命名collection类变量collection包括数组,vector等。
命名时请用复数:
customersclassMates也可以用一些修饰词命名:
someStudentsallDepartmentsd.循环变量一般大家都用i,j,k等做循环变量。
e.Stream变量一般习惯用in,out作为Stream变量,对应inputStream,outputStream类。
如果即读又写的ioStream,可以用inOut。
f.变量的命名习惯习惯MFC的人喜欢采用匈牙利命名法(HungarianNotation)。
如果你习惯这样,尽管用,但注意要和同Project的人保持一致。
还有些人习惯C++里的下画线方式,也可以采用。
HungarianNotation:sFirstNameUnderScoreStyle:_firstName这里提供一个HungarianNotation的前缀命名习惯:
intibytebcharcdoubledfloatflongloffsetofflengthlenObjectoStrings(orstr)Arbitrayvaluev6.Java文件格式有许多方式定义你的文件语句格式,以下是一个例子:
a.文件头说明(可无)b.Package定义c.空行d.Import语句e.空行f.类定义如:
packagecom.midi;//JavaClassesimportjava.awt.*;importjava.io.*;importjavax.swing.event.*;//WebLogicClassesimportweblogic.internal.*;/***Blahblah*@authormidi*@version22.2*/publicclassMyFirstextendsJFrame{...}/***Foo...*@authormidi*@version38.2*/classFoo{...}7.import顺序杂乱无章的顺序,看起来很不顺眼。
应该对你要import的classes归类,按顺序罗列:
a.Java标准类(java.*)b.Java扩充类(javax.*)c.第三方类d.你的应用程序的类而且注意在第三方类里注释它们,说明它们的来源:
importjava.*;importjava.util.Date;importjava.util.Enumeration;importjavax.sql.*;//ApacheXercesimportorg.apache.xml.*;importorg.apache.xerces.dom.*;//Applicationclassesimportcom.midi.util.*;8.Classes的顺序a.Javadoc注释或者其它文件头注释b.类声明c.Fields声明d.空行e.构造函数f.空行g.方法(不包括main)h.空行i.Inner类j.空行k.main()例:
/***ThisisasimpleDOMtreeXMLparser...*...*@author:midi*@version:0.0.1**/publicclassMyParser{//publicconstantspublicstaticfinalStringTITLE=MyParser;publicstaticfinalStringVERSION=0.0.1;//PrivatevariablesprivateintiSchem
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025冕宁县彝海镇彝海村城乡建设用地增减挂钩试点项目附属工程劳务合同
- 上海外国语大学《铁路站场及枢纽》2023-2024学年第一学期期末试卷
- 2025医院采购合同锦集
- 2025解除或终止劳动合同备案书
- 2025汽车用品销售合同模板
- 文学讲座报告范文
- 医院检验报告范文大全
- 上海商学院《信号分析与处理实验》2023-2024学年第一学期期末试卷
- 2025广告发布委托合同书样本
- 2025转租房的合同范本
- 设备维修工绩效考核表
- 2023年小学五年级综合实践活动上册期末试卷(5篇)
- 成立项目部红头文件完整资料
- LY/T 1923-2020室内木质门
- GB/T 30444-2013保健服务业分类
- GB/T 19418-2003钢的弧焊接头缺陷质量分级指南
- GB/T 15900-1995化学试剂偏重亚硫酸钠(焦亚硫酸钠)
- GB/T 15686-2008高粱单宁含量的测定
- GB/T 12615.3-2004封闭型平圆头抽芯铆钉06级
- 《血糖仪POCT临床操作规范》考试题及答案
- GA/T 1105-2013信息安全技术终端接入控制产品安全技术要求
评论
0/150
提交评论