Java标识符命名规范概念在网上已经有大把的文章说明,不再赘述。对于初学者而言,无脑背诵几遍这种概念毫无意义。还不如从目前已经非常成熟的框架代码中感受关于标识符的命名方式。
--摘自【spring-web 4.3.10.RELEASE】
package org.springframework.web.filter;
public class CharacterEncodingFilter extends OncePerRequestFilter {
private String encoding;
private boolean forceRequestEncoding = false;
private boolean forceResponseEncoding = false;
public CharacterEncodingFilter(String encoding) {
this(encoding, false);
}
public void setEncoding(String encoding) {
this.encoding = encoding;
}
}
这里面涉及到的标识符有:包名、类名、变量名、方法名、参数名。
在认识它们之前,需要认识另外一个概念:关键字。
在Java中,官方文档有专门说明关键字,好几十个。请不要去背诵它们,事倍功半。现在流行的编辑器都有语法高亮的功能,对于这些关键字,都做出了特殊的颜色处理。如上,我们也能在博客的code编辑中看到部分蓝色英文,像package、public、class、extends、private、boolean、this都是关键字;那问题来了,false呢?它并不是关键字,只不过在java中有特殊含义,所以编辑器一并显示出蓝色高亮。我们可以这么记忆:在编辑器中,除了true、false、null三个高亮的单词外,其它高亮的单词都是关键字。
接下来,我们一1认识上面的标识符:
包名:由package关键字引导的名称org.springframework.web.filter,全是小写的英文单词或词组,用点号隔开;而且,它还有另外一个特点,就是由部分域名网址反转作为包名的开始部分。早先,spring框架的官网是http://springframework.org,反转后就是org.springframework;之所以这样做,是因为域名这玩意是独一无二的,反转过来肯定也是独一无二的;使用这种方式对包进行分类更加轻松。
类名:由class关键字引导的名称CharacterEncodingFilter,1个或多个单词组合、首字母大写;
方法名: 方法的名称,CharacterEncodingFilter(String encoding);这个例子较特殊,是因为我们发现方法名称与类名称一毛一样,这种方法成为构造方法;构造方法的名称必须与类名一致,所以也比较好记忆,当然,命名规则就与类名一样了。但通常遇到的方法名是setEncoding(String encoding) ,英文单词组合、第一个英文单词首字母小写。
参数名:变量名的一种,CharacterEncodingFilter(String encoding),跟普通的变量命名方式一样,一般都是一个小写单词;如果是多单词组合,那么就和方法名命名方式一样。
除此之外,还有一个比较特殊的,成为常量,举个栗子:
public static final String WORD_UPPERCASE_A = "A";
这里定义了一个常量,大写的字母A,可以看到常量WORD_UPPERCASE_A是多个单词都得大写并用下划线连接起来。
以上,对于常见的命名方式完全可以参照一些成熟的代码实例,而不是反复去背诵那些条条框框的规范。
常见的命名方法有“驼峰”等,感兴趣可以另行了解。