Java平台(其实整个编程界)有着一套很好的命名惯例。所谓惯例,可以理解为“约定俗成”。类似我们常见的《命名规则》《编码规则》《SQL文规则》等,经过提炼,可以基本看出里面的“规律”。
“约定”对于编程来说,意义远大于在其他领域。在Rails中,甚至是“约定大于配置”的。
具体到Java的一系列命名惯例,首先是包名。和.Net中的namespace类似,Java中的package是为了区别不同人、不同公司编写的可能名字相同的类用的,其实这句话应该反着说,因为是Java首先这么用的。而且和MS对namespace的无推荐不同,Sun推荐包名按照域名的逆序来书写,而且全是小写字母,每一层尽量是一个英文单词(名词最好)。尽量一个单词,而且尽量不大于8个字母,所以鼓励使用缩写。例如,使用util而不是utilities(有人也用utils)
2)类和接口(接口其实也是类,Java中万物皆类)的名字采用 Pascal命名法,即每个单词的首字母均大写,各个单词间无连接符。对于一些英文缩写,也推荐除首字母以外都小写。如,HttpUrl,而不是HTTPURL。这里尤其要注意的是仅有两个字母的缩写,如IO,ID,IP(呵呵,碰巧都是I字辈的),最好还是写成 DiskIo,UserId,TerminalIp。
3)类成员(属性和方法)名、局部变量名要用 驼峰命名法,即除首单词的首字母要小写外,其他同Pascal命名法。(这一点和.Net不同,.Net中除私有类成员外,都是Pascal命名法)
4)常量,用全大写,各个单词见用下划线“_”相连接。
5)getter/setter方法,getter/setter其实就是普通的方法,只是一种特定用途罢了。它们用于将被封装的私有属性对外提供访问的方法。通常是在属性名的前面加上 get 和 set ,再将属性名的首字母变大写。
这里的一个特殊地方是boolean型变量,除了之上的方法,也可以把 get 改为 is,如果属性名本身已经是以 is 开头了,就省掉这个 is 。这是 JavaBean 的规范,广义上讲,也可以用一个名词或名词短语,如:size,hashCode
(补充一点:C# VB.Net AS3 都有自己的“属性”语法,有人指为语法糖,但也不失为是一种使用更简单的方式,其本质还是和 Java”标准的”getter/setter 一样的,总之是对私有属性的封装)
6)特殊方法和属性:
静态工厂方法(见【第1条】):valueOf 和 getInstance 前者广泛用于对值类的类型转换,后者则出现在非值类的单例模式中
类型转换方法:toType,如toString,toArray
返回当前对象的一个不同的视图:asType,如:asList,常用 Arrays.asList() 来将数组转换成List
一些省略了开头的“is”的boolean型属性,如 initialized 和 composite
一些常用的通用属性,如:height,digits,size 等
一些常用的通用方法,如:flush(),isEmpty() 等
7)在对英文单词的选择上,也尽量复合大多数人的习惯。
避免使用一些蹩脚的单词,而是使用常见的单词,而且最好是其他人也大多使用的单词。在对两个单词模棱两可时,可以在Javadoc中搜索一下,看看哪一个被类库使用的更多。例如,当你拿不定主意用 delete 还是 remove 时,到Javadoc中搜一下,你会发现 remove 的出现次数远比 delete 要多得多,可能仅仅是在物理上删除如文件或数据库中的记录的时候才用delete,一般对变量中内容的删除都使用remove。
总之,把标准的命名规则变成自己的习惯是一件可以受益匪浅的事情。就在我写这条笔记之前的几个小时,我在百度知道上回答了一个网友的提问。且不说问题的具体内容,但看他的命名就有问题:
- publicstaticStringgetDate(Stringsign,Datedate,intday){
如果他真的是要得到一个 String 类型的返回值,这里就不应该使用 getDate 这个名字,这样会产生误会的。
分享到:
相关推荐
Java学习笔记:JavaSe、Spring、JVM、MySQL、MyBatis...
Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记
Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习...
Java项目学习笔记: SSM实战项目——Java高并发秒杀API,详细流程+学习笔记
java学习笔记java学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记...
java学习笔记,java基础知识,只用于个人学习。
java学习笔记.doc java学习笔记 java学习 学习笔记 java
JAVA学习笔记JAVA学习笔记JAVA学习笔记JAVA学习笔记JAVA学习笔记JAVA学习笔记JAVA学习笔记JAVA学习笔记JAVA学习笔记
Java基础 java学习笔记 Java Java基础Markdown学习笔记,可转换成PDF、Word等格式
(完整版)最全的java学习笔记(必看).pdf
Java Swing组件:Jlist学习笔记Java Swing组件:Jlist学习笔记
在学习java过程中的笔记。
Java JDK 5.0学习笔记:TP312JA L393.iso 随书光盘,欢迎大家下载 大家共享^A^
java学习笔记java学习笔记java学java学习笔记习笔记
java鬼混笔记:JAVA发邮箱(带附件)
java学习笔记
Java学习笔记(必看经典) Java学习笔记(必看经典) Java学习笔记(必看经典)
良葛格的Java学习笔记~讲解得非常详细。JDK5.0的~是Java入门的不错选择。
java学习笔记,从0开始学习 java学习笔记,从0开始学习 java学习笔记,从0开始学习 java学习笔记,从0开始学习 java学习笔记,从0开始学习 java学习笔记,从0开始学习 java学习笔记,从0开始学习 java学习笔记,从0...
狂神说java学习笔记,markdown版