本站首页    管理页面    写新日志    退出

The Neurotic Fishbowl

[java]java书写规范
snowrose 发表于 2006/6/20 13:47:36

JAVA书写规范1. 命名 1.1 Package的名字由一个小写单词组成; 一个特有的包的名字的第一部分总是全部使用小写字母, 并应该是顶级域名中的一个,现在有com, edu, gov, mil, net, org, 或者是在ISO标准3166,1981中定义的两个字母的国家标识。 这样的规则可确定某一目录分开的组件,部门,项目,或登陆名 com.sun.eng , com.apple.quicktime.v2 ,org.apache.catalina 1.2 Class/Interface:大写字母开头而其他字母都小写; 类的名字应是名词,混合大小写,每个词的第一个字母大写。 尽量保证你的类的名字简单并是描述性的。使用完整的单词-避免 头字语和缩写(除非缩写比长的格式更广泛使用,例如URL or HTML) class ImageSprite , interface RasterDelegate 1.3 方法应是动词,混合大小写,第一个字母小写,每个内部的词 的第一个字母大写;除了变量,所有的实例、类和类的常量都 是以小写字母开头的混和大小写。内部的词以大写字母开头。 变量名字不应以下划线或美元符$开始,尽管二者都是允许的。 run() ,runFast() , getBackground() 1.4 变量名字应简短但有意义。变量名字的选择应该是可记忆 的---就是说给普通的人指出它的使用的目的,除非是临时的。临时变 量的一般的名字对于整形变量是i,j,k,m,和n,对于字符是c,d,和e。 int i; char c; float myWidth; 1.5 常量:声明类常量的变量和ANSI常量的名字为下划线分开的 大写字母单词(应避免ANSI常量,除非为了调试) static final int MIN_WIDTH = 4; static final int MAX_WIDTH = 999; 2. 文件 2.1 开头:注释(name,version,date,copyright),package,import; /* * Classname * * Version information * * Date * * Copyright notice */ package java.awt; import java.awt.peer.CanvasPeer; 2.2 Class/Interface:JavaDoc文档注释,体(包含程序、运行和其他注释); 变量,实例,方法等:按public,protect,private排列;尽量少用public。 参见最后example 3. 缩进 3.1 避免每行多于80 个字符,逗号后或运算符前断开, someMethod(longExpression1, longExpression2, longExpression3, longExpression4, longExpression5); var = someMethod1(longExpression1, someMethod2(longExpression2, longExpression3)); 3.2 较高级的断开比较低级的断开更好,新行应与同级 上一行的开头对齐;以下是断开算术式的两个例子。 第一个较好,因为断开出现在算术式以外,处于较高一级。 longName1 = longName2 * (longName3 + longName4 - longName5) + 4 * longname6; // PREFER longName1 = longName2 * (longName3 + longName4 - longName5) + 4 * longname6; // AVOID 3.3 缩排的一个单位应使用4 个空格,不使用制表符而尽量使用空格。 通常语句使用8个空格缩进,就要折行,由于传统的(4个空格) 缩进使观察程序体比较难。例如: if ((condition1 && condition2) || (condition3 && condition4) ||!(condition5 && condition6)) { file://BAD WRAPS doSomethingAboutIt(); file://MAKE THIS LINE EASY TO MISS } file://USE THIS INDENTATION INSTEAD if ((condition1 && condition2) || (condition3 && condition4) ||!(condition5 && condition6)) { doSomethingAboutIt(); } 4. 注释,Java程序有两类注释:文档注释和执行注释。 4.1 文档注释只有java具有,/**...*/。能够被javadoc 工具生成HTML文档, 描述类,接口,构造器,方法和字段,相当于使用指南。 /** * Class description goes here. * * @version 1.82 18 Mar 1999 * @author Firstname Lastname */ 4.2 执行注释是那些在使用在C++中的/*...*/和//。目的为了理解程序和运行, 包括不适合于文档注释的内容,块状或一行,使用/*...*/,注释程序可使用//, 也可放在短行后面,尽量对齐。 /* * @(#)Blah.java 1.82 99/03/18 * * Copyright (c) 1994-1999 Sun Microsystems, Inc. * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. * All rights reserved. * * This software is the confidential and proprietary information of Sun * Microsystems, Inc. ("Confidential Information"). You shall not * disclose such Confidential Information and shall use it only in * accordance with the terms of the license agreement you entered into * with Sun. */ /* A class implementation comment can go here. */ // implementation comment 5. 声明declaration 5.1 每行一个声明,加以注释; int level; // indentation level int size; // size of table 5.2 不要在同一行放置不同的类型; int foo, fooarray[]; file://WRONG! 5.3 只在块的开始处,放置声明; 第一次使用时再声明,增强代码的可移植性。 if (condition) { int int2 = 0; // beginning of "if" block ... } for (int i = 0; i < maxLoops; i++) { ... } 5.4 方法后紧跟"(" ,"{"出现在行尾。 Sample(int i, int j) { ivar1 = i; ivar2 = j; } 6. 语句 6.1 每行最多包括一个语句; argv++; // Correct argc--; // Correct argv++; argc--; // AVOID! if (condition) { statements; } else { statements; } for (initialization; condition; update) { statements; } 6.2 比较重要的一个: try { statements; }catch (ExceptionClass e) { statements; } 7. 空格 7.1 利用空行分隔代码段来提高可读性; 7.2 使用空行:类,接口,方法之间,在一个方法的本地变量和它的第一个语句间; 7.3 被一个圆括号跟着的关键字应被一个空格所分开, 例"while (true) { ", 但方法不分开。 7.4 参数列表中的逗号之后使用一个空格。 public void doSomethingElse(Object someParam, String twoParam) 7.5 二进制的操作符与数以空格分开,例"a = (a + b) / (c * d);" 。 8. 其它 8.1 避免使用一个对象来访问一个类的(静态)变量或方法。 而是使用一个类的名字; classMethod(); file://OK AClass.classMethod(); file://OK anObject.classMethod(); file://AVOID! 8.2 避免分配多个变量给同样值在一个单独的语句中; fooBar.fChar = barFoo.lchar = 'c'; // AVOID! 8.3 适当使用()和{}来分隔运算和程序。 9. 性能有关 (优化代码,调试,运行) 避免太多的使用 synchronized 关键字 ; 尽量使用 StringBuffer 对象; 尽量不要混合使用AWT 和 Swing 组件,等等。 下面是一个参考范例。 /* * @(#)Blah.java 1.82 99/03/18 * * Copyright (c) 1994-1999 Sun Microsystems, Inc. * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. * All rights reserved. * * This software is the confidential and proprietary information of Sun * with Sun..... */ package java.blah; import java.blah.blahdy.BlahBlah; /** * Class description goes here. * * @version 1.82 18 Mar 1999 * @author Firstname Lastname */ public class Blah extends SomeClass { /* 执行注释. */ /** classVar1 文档注释*/ public static int classVar1; /** * classVar2 多于一行的文档注释 * 注释 */ private static Object classVar2; /** instanceVar1 文档注释 */ public Object instanceVar1; /** instanceVar2 文档注释 */ protected int instanceVar2; /** instanceVar3 文档注释 */ private Object[] instanceVar3; /** * ...构造器 Blah 文档注释... */ public Blah() { // ...执行注释 goes here... } /** * ...方法 doSomething 文档注释... */ public void doSomething() { // ...执行注释 goes here... } /** * ...方法 doSomethingElse文档注释.. * @param someParam参数描述 */ public void doSomethingElse(Object someParam) { // ...执行注释goes here... } }

阅读全文(2856) | 回复(0) | 编辑 | 精华

 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)

 
 



The Neurotic Fishbowl

.: 公告




Bloginess

«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31

.: 我的分类(专题)

首页(130)
RIA(22)
linux(3)
J2EE(24)
the mood of everyday(58)
oral English(14)
database(2)
soap(3)
java(9)
web developer center(14)


In the Bowl

.: 最新日志

倾情奉献iphone、ipod、ipho
check ipad's rotatio
css position fixed d
field validation whe
常见浏览器cookie个数和大小限制说明
人类无法抗拒的10种心理,学会它,就能控
读as3cookbook 有感
flex builder linux s
Component returned f
use tramp in emacs i


.: 最新回复

replcica watches
replcica watches
Dell spikes game sit
回复:人类无法抗拒的10种心理,学会它,
回复:人类无法抗拒的10种心理,学会它,
回复:flex builder linu
回复:人类无法抗拒的10种心理,学会它,
回复:人类无法抗拒的10种心理,学会它,
回复:致女人------摘自读者
回复:虚心接受别人的意见,谨慎改正


The Fishkeeper
blog名称:up forever
日志总数:130
评论数量:274
留言数量:4
访问次数:1948282
建立时间:2006年5月25日



Text Me

.: 留言板

签写新留言

参观
这个界面很漂亮!
我试试吧
up forever
该换了!


Other Fish in the Sea

.: 链接


http://blogger.org.cn/blog/more.asp?name=hongrui&id=16955

邢红瑞 

http://niegc.cublog.cn/  聂国聪

http://www.blogjava.net/SteelHand/ 铁手剑谱

http://blog.sina.com.cn/qianqq 糖qq

http://blog.csdn.net/misty_wish   师弟

http://www.bbxy.net/xiaoyu/ Goteet老师

http://www.chinaitpower.com    中国it动力

http://jinyuxi.blog.sohu.com/ 靳羽西




lvetica, sans-serif; MARGIN: 0px 0px 8px; PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px } DIV.blogrollmain { FONT: 12px verdana, arial, helvetica, sans-serif } BLOCKQUOTE { COLOR: #202020; FONT: 11px verdana, arial, helvetica, sans-serif } .tinyfont { FONT: 9px verdana, arial, helvetica, sans-serif } TD { COLOR: #202020; FONT-FAMILY: verdana; FONT-SIZE: 12px } .title { COLOR: #996897; FONT-FAMILY: verdana, sans-serif; FONT-SIZE: 10pt; FONT-WEIGHT: bold } .titlefont { COLOR: #996897; FONT-FAMILY: verdana, sans-serif; FONT-SIZE: 14px; FONT-STYLE: italic } .titlefontarch { BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; COLOR: #996897; FONT-FAMILY: verdana, sans-serif; FONT-SIZE: 14px; TEXT-ALIGN: center; WIDTH: 100% } .menu_text { COLOR: #c1ae94; FONT-FAMILY: Verdana, Arial, sans-serif; FONT-SIZE: 10px; MARGIN-BOTTOM: 1px } .links { FONT-FAMILY: Verdana, Arial, sans-serif; FONT-SIZE: 11px } .smallfont { COLOR: #202020; FONT-FAMILY: Verdana, Arial, sans-serif; FONT-SIZE: 11px; MARGIN: 0px } A:link { COLOR: #996897; TEXT-DECORATION: none } A:visited { COLOR: #996897; TEXT-DECORATION: none } A:hover { BACKGROUND-COLOR: #996897; COLOR: #610862; TEXT-DECORATION: underline } A { TEXT-DECORATION: none } .content { WIDTH: auto } .dateheader { MARGIN: 0px; PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px; POSITION: relative; WIDTH: auto; Z-INDEX: 3; min-width: 120px } .wbtn1 { BACKGROUND-COLOR: #ffffff; BORDER-BOTTOM: #996897 1px solid; BORDER-LEFT: #996897 1px solid; BORDER-RIGHT: #996897 1px solid; BORDER-TOP: #996897 1px solid; COLOR: #996897; FONT-FAMILY: verdana, arial geneva; FONT-SIZE: 7pt; TEXT-DECORATION: none } .calendar { PADDING-BOTTOM: 4px; PADDING-LEFT: 4px; PADDING-RIGHT: 4px; PADDING-TOP: 4px; TEXT-ALIGN: center } .calhead { BACKGROUND-COLOR: #ffffff; BORDER-BOTTOM: gray 1px solid; COLOR: black; TEXT-ALIGN: center; VERTICAL-ALIGN: middle; WIDTH: 14% } .calbody { BORDER-BOTTOM: 1px solid; TEXT-ALIGN: center; VERTICAL-ALIGN: middle; WIDTH: 14% } .style2 {color: #996897}
本站首页    管理页面    写新日志    退出

The Neurotic Fishbowl

[java]java书写规范
snowrose 发表于 2006/6/20 13:47:36

JAVA书写规范1. 命名 1.1 Package的名字由一个小写单词组成; 一个特有的包的名字的第一部分总是全部使用小写字母, 并应该是顶级域名中的一个,现在有com, edu, gov, mil, net, org, 或者是在ISO标准3166,1981中定义的两个字母的国家标识。 这样的规则可确定某一目录分开的组件,部门,项目,或登陆名 com.sun.eng , com.apple.quicktime.v2 ,org.apache.catalina 1.2 Class/Interface:大写字母开头而其他字母都小写; 类的名字应是名词,混合大小写,每个词的第一个字母大写。 尽量保证你的类的名字简单并是描述性的。使用完整的单词-避免 头字语和缩写(除非缩写比长的格式更广泛使用,例如URL or HTML) class ImageSprite , interface RasterDelegate 1.3 方法应是动词,混合大小写,第一个字母小写,每个内部的词 的第一个字母大写;除了变量,所有的实例、类和类的常量都 是以小写字母开头的混和大小写。内部的词以大写字母开头。 变量名字不应以下划线或美元符$开始,尽管二者都是允许的。 run() ,runFast() , getBackground() 1.4 变量名字应简短但有意义。变量名字的选择应该是可记忆 的---就是说给普通的人指出它的使用的目的,除非是临时的。临时变 量的一般的名字对于整形变量是i,j,k,m,和n,对于字符是c,d,和e。 int i; char c; float myWidth; 1.5 常量:声明类常量的变量和ANSI常量的名字为下划线分开的 大写字母单词(应避免ANSI常量,除非为了调试) static final int MIN_WIDTH = 4; static final int MAX_WIDTH = 999; 2. 文件 2.1 开头:注释(name,version,date,copyright),package,import; /* * Classname * * Version information * * Date * * Copyright notice */ package java.awt; import java.awt.peer.CanvasPeer; 2.2 Class/Interface:JavaDoc文档注释,体(包含程序、运行和其他注释); 变量,实例,方法等:按public,protect,private排列;尽量少用public。 参见最后example 3. 缩进 3.1 避免每行多于80 个字符,逗号后或运算符前断开, someMethod(longExpression1, longExpression2, longExpression3, longExpression4, longExpression5); var = someMethod1(longExpression1, someMethod2(longExpression2, longExpression3)); 3.2 较高级的断开比较低级的断开更好,新行应与同级 上一行的开头对齐;以下是断开算术式的两个例子。 第一个较好,因为断开出现在算术式以外,处于较高一级。 longName1 = longName2 * (longName3 + longName4 - longName5) + 4 * longname6; // PREFER longName1 = longName2 * (longName3 + longName4 - longName5) + 4 * longname6; // AVOID 3.3 缩排的一个单位应使用4 个空格,不使用制表符而尽量使用空格。 通常语句使用8个空格缩进,就要折行,由于传统的(4个空格) 缩进使观察程序体比较难。例如: if ((condition1 && condition2) || (condition3 && condition4) ||!(condition5 && condition6)) { file://BAD WRAPS doSomethingAboutIt(); file://MAKE THIS LINE EASY TO MISS } file://USE THIS INDENTATION INSTEAD if ((condition1 && condition2) || (condition3 && condition4) ||!(condition5 && condition6)) { doSomethingAboutIt(); } 4. 注释,Java程序有两类注释:文档注释和执行注释。 4.1 文档注释只有java具有,/**...*/。能够被javadoc 工具生成HTML文档, 描述类,接口,构造器,方法和字段,相当于使用指南。 /** * Class description goes here. * * @version 1.82 18 Mar 1999 * @author Firstname Lastname */ 4.2 执行注释是那些在使用在C++中的/*...*/和//。目的为了理解程序和运行, 包括不适合于文档注释的内容,块状或一行,使用/*...*/,注释程序可使用//, 也可放在短行后面,尽量对齐。 /* * @(#)Blah.java 1.82 99/03/18 * * Copyright (c) 1994-1999 Sun Microsystems, Inc. * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. * All rights reserved. * * This software is the confidential and proprietary information of Sun * Microsystems, Inc. ("Confidential Information"). You shall not * disclose such Confidential Information and shall use it only in * accordance with the terms of the license agreement you entered into * with Sun. */ /* A class implementation comment can go here. */ // implementation comment 5. 声明declaration 5.1 每行一个声明,加以注释; int level; // indentation level int size; // size of table 5.2 不要在同一行放置不同的类型; int foo, fooarray[]; file://WRONG! 5.3 只在块的开始处,放置声明; 第一次使用时再声明,增强代码的可移植性。 if (condition) { int int2 = 0; // beginning of "if" block ... } for (int i = 0; i < maxLoops; i++) { ... } 5.4 方法后紧跟"(" ,"{"出现在行尾。 Sample(int i, int j) { ivar1 = i; ivar2 = j; } 6. 语句 6.1 每行最多包括一个语句; argv++; // Correct argc--; // Correct argv++; argc--; // AVOID! if (condition) { statements; } else { statements; } for (initialization; condition; update) { statements; } 6.2 比较重要的一个: try { statements; }catch (ExceptionClass e) { statements; } 7. 空格 7.1 利用空行分隔代码段来提高可读性; 7.2 使用空行:类,接口,方法之间,在一个方法的本地变量和它的第一个语句间; 7.3 被一个圆括号跟着的关键字应被一个空格所分开, 例"while (true) { ", 但方法不分开。 7.4 参数列表中的逗号之后使用一个空格。 public void doSomethingElse(Object someParam, String twoParam) 7.5 二进制的操作符与数以空格分开,例"a = (a + b) / (c * d);" 。 8. 其它 8.1 避免使用一个对象来访问一个类的(静态)变量或方法。 而是使用一个类的名字; classMethod(); file://OK AClass.classMethod(); file://OK anObject.classMethod(); file://AVOID! 8.2 避免分配多个变量给同样值在一个单独的语句中; fooBar.fChar = barFoo.lchar = 'c'; // AVOID! 8.3 适当使用()和{}来分隔运算和程序。 9. 性能有关 (优化代码,调试,运行) 避免太多的使用 synchronized 关键字 ; 尽量使用 StringBuffer 对象; 尽量不要混合使用AWT 和 Swing 组件,等等。 下面是一个参考范例。 /* * @(#)Blah.java 1.82 99/03/18 * * Copyright (c) 1994-1999 Sun Microsystems, Inc. * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. * All rights reserved. * * This software is the confidential and proprietary information of Sun * with Sun..... */ package java.blah; import java.blah.blahdy.BlahBlah; /** * Class description goes here. * * @version 1.82 18 Mar 1999 * @author Firstname Lastname */ public class Blah extends SomeClass { /* 执行注释. */ /** classVar1 文档注释*/ public static int classVar1; /** * classVar2 多于一行的文档注释 * 注释 */ private static Object classVar2; /** instanceVar1 文档注释 */ public Object instanceVar1; /** instanceVar2 文档注释 */ protected int instanceVar2; /** instanceVar3 文档注释 */ private Object[] instanceVar3; /** * ...构造器 Blah 文档注释... */ public Blah() { // ...执行注释 goes here... } /** * ...方法 doSomething 文档注释... */ public void doSomething() { // ...执行注释 goes here... } /** * ...方法 doSomethingElse文档注释.. * @param someParam参数描述 */ public void doSomethingElse(Object someParam) { // ...执行注释goes here... } }

阅读全文(2856) | 回复(0) | 编辑 | 精华

 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)

 
 



The Neurotic Fishbowl

.: 公告




Bloginess

«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31

.: 我的分类(专题)

首页(130)
RIA(22)
linux(3)
J2EE(24)
the mood of everyday(58)
oral English(14)
database(2)
soap(3)
java(9)
web developer center(14)


In the Bowl

.: 最新日志

倾情奉献iphone、ipod、ipho
check ipad's rotatio
css position fixed d
field validation whe
常见浏览器cookie个数和大小限制说明
人类无法抗拒的10种心理,学会它,就能控
读as3cookbook 有感
flex builder linux s
Component returned f
use tramp in emacs i


.: 最新回复

replcica watches
replcica watches
Dell spikes game sit
回复:人类无法抗拒的10种心理,学会它,
回复:人类无法抗拒的10种心理,学会它,
回复:flex builder linu
回复:人类无法抗拒的10种心理,学会它,
回复:人类无法抗拒的10种心理,学会它,
回复:致女人------摘自读者
回复:虚心接受别人的意见,谨慎改正


The Fishkeeper
blog名称:up forever
日志总数:130
评论数量:274
留言数量:4
访问次数:1948282
建立时间:2006年5月25日



Text Me

.: 留言板

签写新留言

参观
这个界面很漂亮!
我试试吧
up forever
该换了!


Other Fish in the Sea

.: 链接


http://blogger.org.cn/blog/more.asp?name=hongrui&id=16955

邢红瑞 

http://niegc.cublog.cn/  聂国聪

http://www.blogjava.net/SteelHand/ 铁手剑谱

http://blog.sina.com.cn/qianqq 糖qq

http://blog.csdn.net/misty_wish   师弟

http://www.bbxy.net/xiaoyu/ Goteet老师

http://www.chinaitpower.com    中国it动力

http://jinyuxi.blog.sohu.com/ 靳羽西




站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.244 second(s), page refreshed 144771149 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号