Java命名规范和代码风格

Java命名规范和代码风格


基本命名规范

     包命名

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

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

        例:cn.edu.xupt.JavaTest

     类,接口命名

        类的名字必须由大写字母开头而单词中的其他字母均为小写;如果类名称由多个单词组成,则每个单词的首字母均应为大写例如TestPage;

        如果类名称中包含单词缩写,则这个缩写词的每个字母均应大写,如:XMLExample,还有一点命名技巧就是由于类是设计用来代表对象的,所以在命名类时应 尽量选择     名词。

  例:People TestPage XMLExample

     方法名

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

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

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

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

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

  例:getDate(); length(); isReady(); toOracleFormat();

   变量名

        1.普通变量命名应该全部采用小写字母。

        2.final static变量的名字应该都大写,并且指出完整含义,类似于c语言里的宏定义。如果一个常量名称由多个单词组成,则应该用下划线来分割这些单词如。

  例:NUM_DAYS_IN_WEEK MAX_VALU

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

        例:context=ctx message=msg

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

  5.索引变量:ijk等只作为小型循环的循环索引变量。

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

        例:

         if(isClosed){ 

               dosomeworks; 

               return; 

         }

     集合

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

       例:

          List persons = getPerson(); 

             for(Person person : persons){ 

                   dosomeworks; 

             }

     泛型

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

        Container中的Element应该用E表示;

        Map里的keyK表示,valueV;

        TypeT表示;

        异常用X表示如果需要接收多个Type类型的参数,应该用邻接T的大写字母——例如S——来依次表示,当然也可以用T1, T2这样的方式

        例:

        public class HashSet extends AbstractSet {

             …

       }

       public class HashMap<k, v=""> extends AbstractMap<k, v=""> {

             …

       }  

       public class ThreadLocal {

             …

       } 

       public interface Functor<t, throwable="" extends="" x=""> {

               T val() throws X; 

       }

推荐的命名

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

  例:interface Container class ContainerImpl

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

  例:DataNotFoundException InvalidArgumentException

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

  例:AbstractBeanDefinition AbstractBeanFactory

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

        例:ContainerTest

代码风格

 花括号

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

        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.圆括号里的分号后跟空格

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

               dosomework; 

         }

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

  int i = a + b – c * d;

  4. 一元操作符不需要空格。

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

              dosomework; 

        }

  5. 括号前后不需要空格

 类

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

  1) 常量

  2) 成员变量

  3) 构造函数

  4) 成员函数

  5) getset方法

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

  例如:

  规范类模板:

        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; 

               }

        }

 构造函数

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

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

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

 使用成员变量

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

 方法

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

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

Javadoc注释

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

       

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值