Notes 20180508 : Java基本程序设计结构之关键字与标识符
我们成功书写了HelloWorld后,又深入了解了main函数,提到过main并非是关键字,可什么又是关键字呢?这其实就是这章要研究的内容,本节研究关键字与标识符,在标识符中我们也会讲解一下Java中的驼峰命名;
1.1 关键字
在Hello World中,我们发现其中有很多单词是固定的,这其实就是Java中的关键字,关键字在Java中有特殊的含义,下面我们来具体认识一下,这里先简单介绍一下Java中的关键字,后面我们在学习中会针对一些特定的关键字进行特别的解析。
1.1.1 关键字的定义及特点
- 关键字是Java语言里事先定义的,有特别意义的单词,有时又叫保留字,含有特别意义的变量。
- Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等
- 关键字不能用作变量名、方法名、类名、包名和参数。
- Java语言规定关键字不能作为标识符。
- 目前共有50个Java关键字,其中,"const"(常数)和"goto"(转到)这两个关键字在Java语言中并没有具体含义。Java语言把它们列为关键字,只是因为"const"和"goto"是其他某些计算机语言的关键字。
- 关键字中所有字母都为小写。
1.1.2 关键字的分类
关键字根据用途可以分为一下几类:
1.1.2.1 用于定义数据类型的关键字
- class:类
- interface:接口
- byte:基本数据类型之一,字节类型
- short:基本数据类型之一,短整数类型
- int:基本数据类型之一,整数类型
- long:基本数据类型之一,长整数类型
- float:基本数据类型之一,单精度浮点数类型
- double:基本数据类型之一,双精度浮点数类型
- char:基本数据类型之一,字符类型
- boolean:基本数据类型之一,布尔类型
- void:声明当前成员方法没有返回值
1.1.2.2 用于定义数据类型值的关键字
- true:真
- false:假
- null:空
1.1.2.3 用于定义流程控制的关键字
- if:条件语句的引导词
- else:用在条件语句中,表明当条件不成立时的分支
- while:用在循环结构中
- do:用在do-while循环结构中
- switch:分支语句结构的引导词
- case:用在switch语句之中,表是其中的一个分支
- default:默认,例如,用在switch语句中,表明一个默认的分支
- for:一种循环结构的引导词
- break:提前跳出一个块
- continue:回到一个块的开始处
- return:从成员方法中返回数据
1.1.2.4 用于定义访问权限修饰符的关键字
- private:一种访问控制方式:私用模式,只能自己访问
- protected:一种访问控制方式:保护模式,允许子类和同包类访问
- public:一种访问控制方式:共用模式,允许所有外部类访问
访问权限修饰符权限从高到低排列是public ,protected private。
1.1.2.5 用于定义类,函数,变量修饰符的关键字
- abstract:表明类或者成员方法具有抽象属性
- final:用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变
- static:表明具有静态属性
- synchronized:表明一段代码需要同步执行
1.1.2.6 用于定义类与类之间关系的关键字
- extends:表明一个类型是另一个类型的子类型,这里常见的类型有类和接口
- implements:表明一个类实现了给定的接口
1.1.2.7 用于定义建立实例及引用实例,判断实例的关键字
- new:用来创建新实例对象
- this:指向当前实例对象的引用
- super:表明当前对象的父类型的引用或者父类型的构造方法
- instanceof:用来测试一个对象是否是指定类型的实例对象
1.1.2.8 用于异常处理的关键字
- try:尝试一个可能抛出异常的程序块
- catch:用在异常处理中,用来捕捉异常
- finally:用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
- throw:抛出一个异常
- throws:声明在当前定义的成员方法中所有需要抛出的异常
1.1.2.9 用于包的关键字
- import:表明要访问指定的类或包
- package:包
1.1.2.10 其他修饰符关键字
- native:用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
- strictfp:用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范
- transient:声明不用序列化的成员域
- volatile:表明两个或者多个变量必须同步地发生变化
- assert:用来进行程序调试
1.2 标识符
在上面我们知道了关键字不能用于变量名、类名、方法名等,那么Java中的用来表示这些名词的单词是什么呢?有什么命名规则呢?答:标识符;下面我们来解读一下。
1.2.1 标示符的定义、特点及命名
- Java 语言中,对各种变量、方法和类等要素命名时使用的字符序列称为标识符。
- 标识符由任意顺序的字母大小写,数字,下划线‘_’,美元符$ 组成
- Java语言中标识符中的字母是严格区分大小写的。Java语言使用Unicode标准字符集,最多可以标识65535个字符,因此Java语言中的字母不仅包括通常的拉丁文字a、b、c等,还包括汉字、日文以及其他许多语言中的文字。
- Java 标识符有如下命名规则:
- 标识符应以字母、下划线 、美元符开头【下面的标识符是合法的:myName,My_name、Points,$points,_sys_ta,OK,_23b,_3_
下面的标识符是非法的:#name,25name,class,&time,if】。
- 标识符不能是关键字。注意:Java 标识符选取应注意“见名知意”且不能与 Java 语言的关键字重名。
- Java中严格区分大小写。如good和Good是不同的两个标识符。标识符中不能有空格;
1.2.2 Java中的名称规范-驼峰命名
- 包名:多单词组成时所有字母都小写。xxx.yyy.zzz 例如:cn.itcast.student,域名反转
- 类名接口名:多单词组成时,所有单词的首字母大写。XxxYyyZzz
- 变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大xxxYyyZzz
- 常量名:所有字母都大写。多单词时每个单词用下划线连接。XXX_YYY_ZZZ