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 标识符有如下命名规则:
    • 标识符应以字母、下划线 、美元符开头下面的标识符是合法的:myNameMy_name、Points$points,_sys_taOK_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