java关键字与标识符
1.java关键字的使用
- 定义:被Java语言赋予特殊含义,用做专门用途的字符串(单词)
- 特点:关键字中所有字母都为小写
- 具体哪些关键字:
用于定义数据的关键字:
class、interface、enum、byte、short、int、long、float、double、char、boolean、void
用于定义流程控制的关键字:
if、else、switch、case、default、while、do、for、break、continue、return
用于定义访问权限修饰符的关键字:
private、protected、public
用于定义类、函数、变量修饰符的关键字:
abstract、final、static、synchronized
用于定义类与类之间关系的关键字:
extends、implements
用于建立实例及引用实例、判断实例的关键字:
new、this、super、instanceof
用于异常处理的关键字:
try、catch、finally、throw、throws
用于包的关键字:
package、import
用于修饰符关键字:
native、strictfp、transient、volatile、assert
用于定义数据类型值的字面值:
true、false、null
2.保留字
现java版本尚未使用,但以后版本可能作为关键字使用
- 具体哪些保留字:goto,const
- 注意:自己命名标识符时要避免使用这些保留字
3.标识符的使用
- 定义:凡是自己可以起名字的地方都叫标识符。
- 涉及到的结构:包名、类名、接口名、变量名、方法名、常量名
- 规则(必须要遵守。否则,编译不通过):
由26个英文字母大小写,0-9,_或$组成
数字不可以开头
不可以使用关键字和保留字,但能包含关键字和保留字。
Java中严格区分大小写,长度无限制
便是福不能包含空格 - 规范(可以不遵守,不影响编译和运行,但是要求大家遵守):
包名:多单词组成时所有字母都小写:xxxyyyzzz;
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz(小驼峰式)
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词的首字母大写:xxxYyyZzz(大驼峰式)
常量名:所有字母都大写。多单词时每个单词用下划线链接:XXX_YYY_ZZZ。
注意点:在起名字时,为了提高阅读星,要尽量意义,“见名知意”。
4.有意义的命名
4.1 介绍
软件中随处可见命名。我们给变量、函数、参数、类和包命名。我们给源代码以及源代码所在目录命名。这么多命名要做,不妨做好它。下文列出了去个好名字的几条简单规则。
4.2 名副其实,见名知意
变量名太随意,haha、list1、ok、theList这些都没什么意义
4.3 避免误导
包含List、import、java等类名、关键字或关键字
字母o与数字0,字母l与数字1等
地方使用不同之处较小的名称。比如:XYZControllerForEfficientHandlingOfStrings与XYZControllerForEfficientStorageOfStrings
4.4 做有意义的区分
反面教材,变量名:a1、a2、a3
避免冗余,不要出现Variable、表字段中避免出现table、字符串避免出现nameString,直接name就行,知道是字符串类型
再比如:定义了两个类:Customer类和CustomerObject类,如何区分;定义了三个方法:getActiveAccount()、getAcyiveAccounts、getActiveAccountInfo(),如何区分
4.5 使用读得出来的名称
不要使用自己平凑出来的单词,比如:xsxm(学生姓名)、genymdhms(生成日期,年、月、日、时、分、秒)
所谓的驼峰命名法,尽量使用完整的单词
4.6 使用可搜索的名称
一些常量,最好不直接使用数字,而制定一个变量名,这个变量名可以便于搜索到。
比如:找MAX_CLASSES_PER_STUDENT很容易,但想找数字7就麻烦了。
4.7 避免使用编码
4.7.1 匈牙利语标记法
即变量名表明该变量数据类型的小写字母开始。例如,szCmdLine的前缀sz表示“以零结束的字符串”。
4.7.2 成员前缀
避免使用前缀,但是Android中一个比较好的喜欢用m表示私有等,个人感觉比较好。
4.7.3 接口和实现
作者不喜欢吧接口使用I来开头,实现也希望只是在后面添加Imp
4.8 避免思维映射
比如传统上惯用单字母名称做循环计数器。所以就不要给一些非计数器的变量命名为:i、j、k等
4.9 类名
类名与对象名应该是名词与名词短语。如Customer、WikiPage、Account和AddressParser。避免使用Data或Info这样的类名。
不能使动词。比如:Manage、Process。
4.10 方法名
方法名应当是动词或者动词短语。比如:postPayment、deletePage或save
4.11 别扮可爱
有的变量名交haha、banana
别用eatMyShorts()表示abort()
4.12 每个概念对应一个词
项目中同时出现controllers与managers,为什么不统一使用其中一种?
对于那些会用到你代码的程序员,一以贯之的命名法简直就是天降福音。
4.13 别用双关语
有时可能使用add并不合适。例如insert、append。add表示完成的新添加的含义
4.14 使用解决方案领域名称
看代码的都是程序员,所以尽量使用那些计算机科学术语、算法名、模式名、数学术语,
依据问题所涉及领域来命名不算是聪明的做法
4.15 使用源自所涉问题领域的名称
如果不能用程序员熟悉的术语来给手头的工作命名,就采用从所涉问题领域而来的名称吧。
至少,负责维护代码的程序员就能去请教领域专家了
4.16 添加有意义的语境
可以把相关的变量放到一个类中,使用这个类来表明语境。
4.17 不要添加没用的语境
名字中带有项目的缩写,这样完全能没有必要。比如有一个名为“加油站豪华版”(Gas Station Deluxe)的项目,在其中给每个类添加GSD前缀就不是什么好策略。
4.18 最后
取好名字最难的地方在于需要良好的描述技巧和共有文化背景。