标识符
回顾一下上次我们写的程序,就会发现,程序源文件的名字(不带后缀名)和public class
后面的类名是一样的。这是关于文件名和类名的一个规定:
程序源文件名必须和public修饰的类的类名一致
换个角度讲,如果程序中的类,没有使用public
修饰,那么源文件名可以和类名不同,而且一个源文件中可以写多个类,但只有一个类可以用public
修饰。。
是不是感觉有点复杂?我们把它简化一下:
每个程序源文件中只定义一个类,源文件名和类名保持一致
既然提到了“名字”,我们就来了解一下Java中对名字的规定。
在编程过程中,我们有很多地方都需要取名字,比如上面提到的类的名字,源文件的名字;再比如代码中String name;
,这个name
就是为创建的一个String(字符创)类型的对象起的名字。这些名字在Java中统称为标识符。命名标识符时,需要遵守以下规则:
- 严格区分大小写;
- 只能由字母、数字、下划线(_)和美元符号($)组成
- 不能用数字开头
- 不能和关键字相同
说明:
- 所谓关键字,就是Java中有特殊用途的一些词语,例如前面用过的
public
、class
等 - 在同一个作用域中,标识符也是不能重复的。作用域的概念在后面会讲到
- 上述规则中提到的
字母
包含任何合法的Unicode字符,例如汉字,但不建议这么做,最好只使用英文字母 - 标识符的长度没有明确限制,但建议不超过255个字符
在实际开发过程中,为了做到“见名知意”,往往会用多个单词组合成一个标识符。这时,除了遵守这些基本规则外,为了代码更加清晰易读,大家还会遵守一些命名习惯:
- 为类、接口命名时,首字母大写,其后每个单词首字母大写
- 为方法命名时,首字母小写,其后每个单词首字母大写
- 为变量命名,首字母小写,其后每个单词首字母大写
- 为常量命名时,所有字母大写,多个单词之间用下划线隔开
- 为包命名时,所有字母小写
代码格式
Java语言对代码格式并没有严格的要求,只要保证:
- 每句代码用分号
;
结尾 - 成对的符号(例如(),[],{}等)必须成对出现
为了提高代码的可读性,一般会要求代码遵守一定的格式。可以选择风格比较多,具体要求也比较多,这里不做详细说明,只提供一个方法:在代码编辑区点击鼠标右键,在弹出的菜单中选择Source-->Format,Eclipse就可以为代码格式化。
其他IDE的操作方法与此类似,不再赘述。
建议今后在程序编写完成时,先对代码进行格式化,再进行其它操作。这样代码看起来更加清晰,也更容易维护。
注释
注释是程序中非常重要的部分,注释用于为程序添加说明性的文字,帮助人们更容易看懂程序。Java中有三种注释:
- 行注释,以
//
开头,换行时结束,用于进行简单描述,一般写在代码结尾处或者被注释部分的上方 - 块注释,以
/*
开头,以*/
结束,不限制行数,用于对整个源文件进行说明或进行相信说明,一般写在源文件开头部分或被注释部分的上方 - 文档注释,以
/**
开头,以*/
结束,不限制行数,用于生成当前源文件的文档。有了文档注释,就不需要另外编写一个手册来说明每个源文件中包含什么程序,应该怎么使用了,写注释的时候写下文档注释,然后用工具自动抓取这些注释并生成文档即可。
上一次对程序的说明,如果添上注释,可以写成这样(这里仅仅针对程序进行简单的注释,工作中往往还需要做文档注释):
/*
本程序要求用户输入自己姓名,程序会结合用户的输入输出合适的问候语
例如,用户输入“张三”,程序则输出“hello 张三”
*/
import java.util.Scanner;
public class Hello {
public static void main(String[] args) {
//提示用户输入自己的名字
System.out.println("请输入您的姓名:");
//将用户输入的名字保存到name对象中
Scanner sc=new Scanner(System.in);
String name;
name=sc.next();
//输出问候语
System.out.println("hello "+name);
}
}
很多人会觉得注释写不写、怎么写都对程序没有一分一毫的影响,所以能少写就少些,能不写就不写,这种想法是错误的。
有句话说得好:程序不是写出来的,是改出来的。那种一气呵成并且完美无缺的程序只存在于传说中,所以现实中写程序,必然要面临修改的命运。不光修改别人的程序会有看不懂的可能,就连修改自己前几天写的程序都很有可能看不懂。所以,必须养成为程序添加适当注释的习惯。
语句和表达式
Java中的代码主要由语句和表达式构成。
语句包括结构定义语句和功能执行语句。结构定义语句用于定义程序的结构,如定义类,定义方法等;功能执行语句用于实现一个特定的功能,如定义变量、调用方法等。
结构定义语句一般包含一对大括号,相关代码就写在这对大括号当中。
功能执行语句必须以分号;
结尾。
单独的分号也可以算是一个语句,不过不实现任何功能罢了。一般当做占位符,表明此处还有程序要写。
在流程控制语句中会用大括号把若干个语句括起来,合并成一个复合语句
,在地位上和单个语句相同,功能则是所有括起来的语句的功能之和。
还可以用大括号把一部分语句括起来,形成语句块
(和复合语句不同),具有特殊的作用,在后面会进行详细说明。
在Java中,一个表示运算的式子被称为表达式。例如a+b
,5*9
等。
表达式后面加个分号,也是一个语句。
02