版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Lishoulin,PTC普联软件(中国)2021年度入职培训,济南燕山学院PANSOFTJULY,2021编码标准(JAVA版)JAVA之路
JAVA开发人员编码标准TechnologyTeamProgress整理课件编码标准的必要性你自己|编码标准对于程序员自己而言尤为重要其它人|几乎没有一个软件,在其整个生命周期中,均由最初的开发人员来维护,其它的人能看懂你的代码吗?生命周期|80%的花费在于维护可读性|编码标准可以改善软件的可读性代码理解|有助于尽快而彻底地理解新的代码团队协作|必不可少的标准正确率|保证正确率,躲避低级的错误PANFOTJAVADeveloper整理课件标准的实施原那么|参照标准|注重实践|从点滴做起范围|全体使用JAVA开发的编码人员|设计人员时机|开发软件工程|产品的任何时间检查|工程组内部检查|公司专门人员抽查修改或升级|专门小组负责PANFOTJAVADeveloper整理课件主要内容JAVA代码编写标准数据库访问标准操作界面设计标准常用工具PANFOTJAVADeveloper整理课件JAVA代码编写标准PANFOTJAVADeveloper整理课件文件组织文件名|java|class文件组织|单个源文件长度控制在2000行PANFOTJAVADeveloper整理课件包与类、接口命名包|全部小写,com+公司名+产品名+模块名类|名词|大小写混合|简洁而完整|首字符使用J或者T接口|大小写混合|简洁而完整|首字符使用IPANFOTJAVADevelopercom.pansoft.financecom.pansoft.publicclassJRaster;
classJImageSpriteinterfaceIRasterDelegate;
interfaceIStoring;整理课件方法命名方法|动词|大小写混合|首字母小写|其后单词首字母大写PANFOTJAVADeveloperrun();
runFast();
getBackground();
整理课件变量命名大小写混合|首字母小写|后面单词首字母大写不应使用下划线名称应简短而富描述性|便于记忆防止单字母变量名,除非|临时变量i|j|k|m|n一般用于整型临时变量c|d|e一般用于字符型临时变量PANFOTJAVADevelopercharc;
inti;
floatmyWidth;
整理课件成员变量和变量名相似前面加mPANFOTJAVADeveloperintmEmployeeId;
StringmName;
CustomermCustomer;整理课件实参变量大小写规那么和变量名相似前面需要加一个pPANFOTJAVADeveloperpublicvoidcallMe(intpAge,StringpName){}整理课件常量全部大写单词间用下划线隔开PANFOTJAVADeveloperstaticfinalintMIN_WIDTH=4;
staticfinalintMAX_WIDTH=999;
staticfinalintGET_THE_CPU=1;
整理课件开头注释开头有一个C语言风格的注释列出类名|版本信息|日期|版权PANFOTJAVADeveloper/**Classname**Versioninformation**Date**Copyrightnotice*/整理课件包和引入语句第一个非注释行是包语句之后可以跟引入语句PANFOTJAVADeveloper
packagejava.awt;importjava.awt.peer.CanvasPeer;
整理课件类/接口定义类|接口注释类的(静态)变量实例变量构造器方法PANFOTJAVADeveloper整理课件静态变量首先是类的公共变量随后是保护变量再后是包一级别的变量最后是私有变量PANFOTJAVADeveloper整理课件实例变量首先是公共级别随后是保护级别的再后是包一级别的最后是私有级别的PANFOTJAVADeveloper整理课件方法该按功能分组布局非按访问区域分组为了更便于阅读和理解代码PANFOTJAVADeveloper整理课件缩进4个空格为一个缩进单位JBuilder缺省2个可更改|Eclipse可设置PANFOTJAVADeveloper整理课件行长度防止一行超过80字符PANFOTJAVADeveloper整理课件换行(断行原那么)在一个逗号后面断开在一个操作符前面断开宁可选择较高级别(higher-level)的断开,而非较低级别(lower-level)的断开新的一行应该与上一行同一级别表达式的开头处对齐PANFOTJAVADeveloper整理课件换行(断行原那么)在一个逗号后面断开在一个操作符前面断开宁可选择较高级别(higher-level)的断开,而非较低级别(lower-level)的断开新的一行应该与上一行同一级别表达式的开头处对齐缩进后假设使第二行和第三行移得很靠右,可以代之以缩进8个空格PANFOTJAVADeveloper整理课件换行(断行原那么)PANFOTJAVADeveloper//正常断行someMethod(intanArg,ObjectanotherArg,StringyetAnotherArg,ObjectandStillAnother){...}//假设断行后很靠右,那么下面行可以缩进8个空格,看上去更美观。privatestaticsynchronizedhorkingLongMethodName(intanArg,ObjectanotherArg,StringyetAnotherArg,ObjectandStillAnother){...}整理课件IF语句断行PANFOTJAVADeveloper//缩小过少,不易阅读1if((condition1&&condition2)2||(condition3&&condition4)3||!(condition5&&condition6)){4doSomethingAboutIt();//这一行不易阅读识别
}//较多的缩进,便于阅读5if((condition1&&condition2)6||(condition3&&condition4)7||!(condition5&&condition6)){8doSomethingAboutIt();}通常使用8个缩进,看起来清晰整理课件三元运算符PANFOTJAVADeveloper1alpha=(aLongBooleanExpression)?beta:gamma;2alpha=(aLongBooleanExpression)?beta:gamma;3alpha=(aLongBooleanExpression)?beta:gamma;三种可行的方法整理课件注释PANFOTJAVADeveloper实现注释|注释代码或者实现细节|使用/**/或//注释|与C++相同
文档注释|Java独有,使用/***/表示|可转为HTML不应包括|制表符和回退符之类的特殊字符
四种注释风格|块|单行|尾端|行末整理课件块注释PANFOTJAVADeveloper目的|对文件,方法,数据结构和算法的描述
位置|文件开始|方法之前|方法内部
整理课件块注释PANFOTJAVADeveloper首部有一空行|利于代码分隔可以以/*-开头|indent(1)就可以将之识别为一个代码块的开始
/**Hereisablockcomment.*/整理课件单行注释PANFOTJAVADeveloper短注释|可以显示在一行内,与其后的代码具有一样的缩进多于一行|不能在一行内写完,就该采用块注释
1if(condition){2/*Handlethecondition.*/3//code….4}整理课件尾端注释PANFOTJAVADeveloper极短的注释|可以与它们所要描述的代码位于同一行极短的注释共存|应该具有相同的缩进
1if(a==2){2returnTRUE;/*specialcase*/3}else{4returnisPrime(a);/*worksonlyforodda*/5}
整理课件行末注释PANFOTJAVADeveloper三种风格1if(foo>1){2.//Doadouble-flip.3}4else{5.returnfalse;//Explainwhyhere.6}7.//if(bar>1){8////Doatriple-flip.9//}10//else{11//returnfalse;12//}整理课件文档注释PANFOTJAVADeveloperJAVA描述信息|类、接口、构造器,方法,以及字段注释定界符|/**...*/位置|应位于声明之前,不能在其内部
/***TheExampleclassprovides...*/publicclassExample{...整理课件变量声明|个数PANFOTJAVADeveloper推荐一行一个声明|因为这样利于写注释
不要|不同类型变量的声明不放在同一行1intlevel;//indentationlevelintsize;//sizeoftable//这样不好
3intlevel,size;4intfoo,fooarray[];//错误写法整理课件变量声明|初始化PANFOTJAVADeveloper尽量|在声明局部变量的同时初始化或者|初始值依赖于某些先前发生的计算,可不初始化
整理课件变量声明|布局PANFOTJAVADeveloper只在|代码块的开始处声明变量不要|首次用到该变量时才声明之,for循环例外防止|声明的局部变量覆盖上一级声明的变量1voidmyMethod(){2intint1=0;//好的声明3if(condition){4intint2=0;//不好的声时5...6}7}整理课件类与接口声明PANFOTJAVADeveloper方法名与其参数列表之前的左括号"("间不要有空格左大括号“{〞位于声明语句同行的末尾右大括号“}〞另起一行除非是一个空语句方法与方法之间以空行分隔1classSampleextendsObject{2intivar1;3intivar2;4Sample(inti,intj){5ivar1=i;6ivar2=j;7}8intemptyMethod(){}9...10}整理课件简单语句PANFOTJAVADeveloper每行至多包含一条语句1argv++;//Correct2argc--;//Correct3argv++;argc--;//AVOID!整理课件复合语句PANFOTJAVADeveloper定义|包含在大括号中的语句序列缩进|被括其中的语句应该较之复合语句缩进一个层次左大括号|位于复合语句起始行的行尾;
右大括号|另起一行并与复合语句首行对齐1if(this.isExist(“0001〞){2argc--;//Correct3System.out.println(“HELLO〞);4}整理课件返回语句PANFOTJAVADeveloper带返回值时|return语句不使用小括号"()“除非|以某种方式使返回值更为显见1.return;2.returnmyDisk.size();3.return(size?size:defaultSize);整理课件If|if-else|ifelse-ifelsePANFOTJAVADeveloper使用如下正确格式1.if(condition){2statements;3}4if(condition){5statements;6}else{7statements;8}
9If(condition){10statements;11}elseif(condition){12statements;13}else{14statements;15}整理课件If|if-else|ifelse-ifelsePANFOTJAVADeveloper总是使用{},防止如下格式
if(condition)//非法的,应该以{}包括
statement;
整理课件For语句PANFOTJAVADeveloper具备如下格式
for(initialization;condition;update){statements;}整理课件While语句PANFOTJAVADeveloper具备如下格式
while(condition){statements;}空的while语句应该具有如下格式
while(condition);整理课件Dowhile语句PANFOTJAVADeveloper具备如下格式
do{statements;}while(condition);中间使用break可以跳出整理课件Switch语句PANFOTJAVADeveloper具备如下格式1switch(condition){2caseABC:3statements;4/*fallsthrough*/5caseDEF:6statements;7break;8caseXYZ:9statements;10break;11default:12statements;13break;14}整理课件try.catchPANFOTJAVADeveloper具备如下格式
try{statements;}catch(ExceptionClasse){statements;}finally{statements;}整理课件空白|空行PANFOTJAVADeveloper两空行|一个源文件的两个片段(section)之间|类声明和接口声明之间
单空行|两个方法之间|方法内的局部变量和方法的第一条语句之间|块注释或单行注释之前|一个方法内的两个逻辑段之间
整理课件空白|空格PANFOTJAVADeveloper紧跟着括号的关键字|应该被空格分开位于|参数列表中逗号的后面所有的二元运算符|除了“.〞,应该使用空格将之与操作数分开for语句|表达式应该被空格分开强制转型|应该跟一个空格整理课件空白|空格PANFOTJAVADeveloper1a+=c+d;2a=(a+b)/(c*d);3while(d++=s++){4n++;5}6printSize("sizeis"+foo+"\n");
7for(expr1;expr2;expr3)8myMethod((byte)aNum,(Object)x);9myMethod((int)(cp+5),((int)(i+3))+1);整理课件变量赋值PANFOTJAVADeveloper1ooBar.fChar=barFoo.lchar=‘c’;//禁止此种方法
2if(c++=d++){//AVOID!(Javadisallows)...3}//应该写成
4if((c++=d++)!=0){...5}防止|一个语句中给多个变量赋相同的值不要|将赋值运算符用在容易与相等关系运算符混淆的地方整理课件变量赋值PANFOTJAVADeveloper1
d=(a=b+c)+r;//AVOID//应该写成
2
a=b+c;3d=a+r;不要|使用内嵌(embedded)赋值运算符试图提高运行时的效率。整理课件返回值PANFOTJAVADeveloper1if(booleanExpression){2returntrue;3}else{4returnfalse;5}
应该代之以如下方法:6returnbooleanExpression;设法让你的程序结构符合目的1if(condition){2returnx;3}4returny;
应该写做:5return(condition?x:y);整理课件JAVA数据库访问标准PANFOTJAVADeveloper整理课件JAVA数据库访问标准PANFOTJAVADeveloper重要|所有业务操作都会使用这些资源数据库资源|连接|会话|结果集慎重地使用|否那么会引起严重性能及稳定性问题整理课件访问准那么PANFOTJAVADeveloper框架提供|标准的获得与释放资源的方式谁获得,谁必须负责释放TRY|在try块外获得资源,在try块内使用/提交资源,在catch块内回滚资源,在finally块中释放资源时间|当一次效劳占用资源时间过长,建议分阶段使用事务|谁建立谁负责,要有明确的显式提交或回滚自动提交状态|谁更改,谁恢复整理课件Connection使用例如PANFOTJAVADeveloper1JResponseObjectRO=newJResponseObject();//获得一个可用连接,这个连接可能获取不到。2JConnectionconn=3(JConnection)JActiveDComDM.AbstractDataActiveFramework.InvokeObjectMethod(4"DBManagerObject","GetDBConnection",Param);//因此,这里要判断一下。5if(conn==null){//如果是无效连接,要返回错误信息。6RO.ErrorCode=-1;7RO.ErrorString="无法获得数据库连接";8returnRO;9}整理课件Connection使用例如PANFOTJAVADeveloper1try{2DBOFormService.3SQLQuery(conn,msgInput.asStringValue("SqlText",""),IE.getResultMessage());//根据需要,返回对象类型的结果。4RO.ResponseObject=IE;}5catch(ExceptionE){//发生异常时,要把异常信息返回。6RO.ErrorCode=-1;7RO.ErrorString=E.getMessage();8}9finally{//finally里执行连接的关闭操作。10conn.close();11}12returnRO;整理课件Statement&ResultSetPANFOTJAVADeveloper1StatementpSession=null;2ResultSetpRS=null;3pSession=conn.createStatement();4StringpSql=“SELECT*FROMLSCONFWHERE1=1〞;5try{6pRS=pSession.executeQuery(pSql);7if(pRS.next()){8//这里是逻辑代码。用来取数。9} 10}11catch(ExceptionE){12//这里是一个异常,需要把异常信息想法通知调用者。可以使用throw抛出。13}整理课件Statement&ResultSetPANFOTJAVADeveloper1finally{2try{3//清理操作。
4if(pRS!=null){5pRS.close();6}7if(pSession!=null){8pSession.close();9}10}11catch(ExceptionEE){12//这里可能也有异常,不需要抛出。
13}14}整理课件按钮PANFOTJAVADeveloper按钮|高度设为23|宽度缺省|缺省设置图标整理课件图标PANFOTJAVADeveloper细节|16*16|透明底色|.gif|位置|com.eai.resources.icons装入|gif|TImages.getIcon(StringpIconId)装入|png|TImages.getIconp(StringpIconId)
整理课件动作响应PANFOTJAVADeveloper防止|addActionListener|actionPerformed不可再用优先|使用IAction机制整理课件动作响应PANFOTJAVADeveloper1IActionmActStop=TAction.Create("STOP","停止",'S',this,"onStop","SYS_STOP");2JButtonbtStop=newJButton(“〞);3btStop.setAction(mActStop);4publicbooleanonStop(IActionpAct,ActionEventpEvt){5returntrue;//这里即是处理代码。6}7JMenuItempMM=newJMenuItem();8pMM.setAction(m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度酒店消防系统设备更新与优化合同3篇
- 2025年度私人承包数据中心节能减排建筑合同范本3篇
- 2025年教育培训机构销售居间代理协议3篇
- 2025年度个人股份质押合同标准范本4篇
- 2025年度个人二手车转让协议书(全新升级版)3篇
- 美容院消防安全责任及管理协议书(二零二五年度)4篇
- 湿地湖施工方案
- 毕业答辩指导模板
- 2025年度个人装修借款合同答辩状编制指南4篇
- 2024年中级经济师考试题库含答案(能力提升)
- 2024-2025学年人教版数学六年级上册 期末综合试卷(含答案)
- 收养能力评分表
- 山东省桓台第一中学2024-2025学年高一上学期期中考试物理试卷(拓展部)(无答案)
- 中华人民共和国保守国家秘密法实施条例培训课件
- 管道坡口技术培训
- 2024年全国统一高考英语试卷(新课标Ⅰ卷)含答案
- 2024年认证行业法律法规及认证基础知识 CCAA年度确认 试题与答案
- 皮肤储存新技术及临床应用
- 外研版七年级英语上册《阅读理解》专项练习题(含答案)
- 2024年辽宁石化职业技术学院单招职业适应性测试题库必考题
- 上海市复旦大学附中2024届高考冲刺模拟数学试题含解析
评论
0/150
提交评论