2.2 Java基础语法
我们可以将一个Java程序看作是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。其中,对象是类的一个实例,有状态和行为;类是一个模板,用于描述一类对象的行为和状态;方法是行为,一个类可以有很多方法,逻辑运算、数据修改以及所有动作都是在方法中完成的。
2.2.1 标识符
Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。例如:在之前所定义的FirstJava这个类的名称,就是一种标识符。
在定义标识符时要有意义,例如studentName、School等,这些都表示有意义的单词。特别要注意的是,标识符不能使用Java的关键字,关键字指的是一些在语法结构中有特殊含义的标记。如图2-3所示,代码行中红色标记的单词都叫关键字,不能够作为标识符。
图2-3 关键字和标识符
举例说明,下面的标识符是合法的:
下面的标识符是不合法的:
总之,在Java中,标识符的命名有一些规则,这些规则是大家约定俗成的,应该尽量遵守。
(1)类和接口名:每个单词的首字母大写,含大小写,例如MyClass、HelloWorld、Time等。
(2)方法名:第一个单词的首字母小写,其余单词的首字母大写,含大小写,尽量少用下画线,例如myName、setTime等。这种命名方法叫作驼峰式命名。
(3)常量名:基本数据类型的常量名全部使用大写字母,单词与单词之间用下画线分隔,对象常量含大小写,例如SIZE_NAME。
(4)变量名:第一个单词的首字母小写,其余单词的首字母大写,含大小写。不用下画线,少用美元符号。给变量命名要尽量做到见名知义。
另外,关于Java标识符,还需要注意以下四点:
(1)所有的标识符都应该以字母(A~Z或者a~z)、美元符号($),或者下画线(_)开始。
(2)首字符之后可以是字母(A~Z或者a~z)、美元符号($)、下画线(_)或数字的任何字符组合。
(3)标识符不能是Java中的关键字或保留字。
(4)标识符是大小写敏感的,应区分字母的大小写。
2.2.2 关键字
关键字是Java中事先定义好的,具有一定意义和作用的唯一标识符。Java语言中的关键字如表2-1所示。
表2-1 Java中的关键字
以上的所有关键字都不需要特别强记,只要代码写熟了,自然就记住了。但是针对以上的关键字,还有几点说明:
(1)Java的关键字是随新的版本发布在不断变动中的,不是一成不变的。
(2)所有关键字都是小写的。
(3)goto和const不是Java编程语言中使用的关键字,它们是Java的保留字,也就是说Java保留了它们,但是没有使用它们。
(4)有三个严格来讲不是关键字,其具备特殊含义的标记:true(真)、false(假)、null(空)。
(5)表示类的关键字是class。
2.2.3 分隔符
在Java中,有一类特殊的符号称为分隔符,包括空白分隔符和普通分隔符。空白分隔符包括空格、回车、换行和制表符。空白分隔符的主要作用是分隔标识符,帮助Java编译器理解源程序。例如:
int a;
若标识符int和a之间没有空格,即inta,则编译程序会认为这是用户定义的标识符,但实际上该语句的作用是定义变量a为整型变量。
另外,在编排代码时,适当的空格和缩进可以增强代码的可读性,例如下面这段代码:
在这个程序中,用到了大量的用于缩排的空格(主要是制表符和回车),如果不使用缩排空格,这个程序可能会显示如下:
相比较上一个程序,这个程序没有使用制表符来做缩排,显然在层次感上差了很多,甚至,还可能是如下情况:
这个程序所有的语句都写在同一行上。其在语法上是正确的,但在可读性上是非常不好的。因此,在写程序时要灵活地使用空格来分隔语句或者做格式上的缩排,但是,也不能滥用。使用空白分隔符要遵守以下规则:
(1)任意两个相邻的标识符之间至少有一个分隔符,以便编译程序能够识别。
(2)变量名、方法名等标识符不能包含空白分隔符。
(3)空白分隔符的多少没有什么含义,一个空白符和多个空白符的作用相同,都是用来实现分隔功能的。
(4)空白分隔符不能用非普通分隔符替换。
普通分隔符具有确定的语法含义,如表2-2所示。
表2-2 Java的普通分隔符
Eclipse提供了一种简单快速调整程序格式的功能,可以选择source→format菜单命令来调整程序格式,如果程序没有错误,格式会变成预定义的样式。在编写程序完成后,执行快速格式化,可以使代码美观整齐。
2.2.4 代码注释
类似于C/C++,Java也支持单行以及多行注释。注释中的字符将被Java编译器忽略。例如下面这段代码,里面具有单行注释与多行注释。
1.单行注释
单行注释形如“//注释内容”。单行注释标记符号“//”之后的内容不参与编译运行,语法格式如下:
//注释内容
例如,以下代码为声明的char型变量添加注释:
char name //声明char型变量,用于保存姓名信息
☆大牛提醒☆
在Eclipse中选择要注释的行,并按Ctrl+/组合键可以注释和取消注释。
2.多行注释
多行注释形如“/*注释内容*/”。“/* */”为多行注释标记,符号“/*”和“*/”之间的所有内容均为注释内容。注意“/*”和“*/”必须成对出现,语法格式如下:
/* 注释内容1 注释内容2 … /*
例如以下代码:
☆大牛提醒☆
在Eclipse中选择要注释的内容,按Ctrl+Shift+/组合键可以进行多行注释;按Ctrl+Shift+\组合键可以取消多行注释。
3.文档注释
文档注释形如“/**注释内容*/”,这样以“/**”开头,以“*/”结尾的注释。符号“/**”和“*/”之间的内容均为文档注释内容。当文档注释出现在声明(如类的声明、类的成员变量声明、类的成员方法声明等)之前时,会被Javadoc文档工具作为Javadoc文档内容读取。
例如,下面代码就是一个文档说明注释。
/** * 类方法的详细使用说明 * * @param 参数1的使用说明 * @return 返回结果的说明 * @throws 异常类型,错误代码 注明从此类方法中抛出异常的说明 */
☆大牛提醒☆
一定要养成良好的编码习惯,在编写代码时,尽量做到“可读性第一,效率第二”,所以程序员必须要在程序中添加适量的注释来提高程序的可读性和可维护性,建议程序中的注释总量不低于代码总量的20%。