———Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ———
在java中保留关键字是被java本身定义使用的字母组合,具有特殊意义,所以不能用作变量名、方法名以及包名。Java共有51个关键字,中const和goto虽然被保留但未被使用。保留关键字分为8大类:
一、访问控制:
序号 |
保留关键字 |
定义或作用 |
1 |
private |
私有的 |
2 |
protected |
受保护的 |
3 |
public |
公共的 |
二、类、方法、变量的修饰符:
序号 |
保留关键字 |
定义或作用 |
4 |
abstract |
声明为抽象 |
5 |
class |
类 |
6 |
extends |
扩展、继承 |
7 |
final |
终极、不可变 |
8 |
implements |
实现 |
9 |
interface |
接口 |
10 |
native |
本地 |
11 |
new |
新建、创建 |
12 |
static |
静态 |
13 |
strictfp |
严格精准 |
14 |
synchronized |
同步 |
15 |
transient |
短暂 |
16 |
volatile |
易失 |
三、程序控制语句:
序号 |
保留关键字 |
定义或作用 |
17 |
break |
中断、跳出循环 |
18 |
continue |
继续 |
19 |
return |
返回 |
20 |
do |
运行 |
21 |
while |
循环 |
22 |
if |
如果 |
23 |
else |
那么、反之 |
24 |
for |
循环 |
25 |
instanceof |
是否实例 |
26 |
switch |
开关 |
27 |
case |
返回开关的结果 |
28 |
deault |
默认 |
四、异常处理
序号 |
保留关键字 |
定义或作用 |
29 |
catch |
处理异常 |
30 |
finally |
最终都执行 |
31 |
throw |
抛出一个异常对象 |
32 |
throws |
声明一个异常可能被抛出 |
33 |
try |
捕获异常 |
五、包相关:
序号 |
保留关键字 |
定义或作用 |
34 |
import |
引入 |
35 |
package |
包 |
六、基本类型:
序号 |
保留关键字 |
定义或作用 |
36 |
boolean |
布尔 |
37 |
byte |
字节 |
38 |
char |
字符 |
39 |
double |
双精度 |
40 |
float |
单精度 |
41 |
int |
整型 |
42 |
long |
长整型 |
43 |
short |
短整型 |
44 |
null |
对象的空 |
45 |
true |
真 |
46 |
false |
假 |
null“”
七、变量引用:
序号 |
保留关键字 |
定义或作用 |
47 |
super |
父类、超类 |
48 |
this |
本类 |
49 |
void |
无返回值 |
八、访问控制保留字(未使用)
序号 |
保留关键字 |
定义或作用 |
50 |
const |
常量 |
51 |
goto |
跳转 |
JAVA的修饰符
修饰符 |
类 |
变量 |
方法 |
abstract |
抽象类 |
|
抽象方法 |
final |
最终类 |
最终变量:常量 |
最终方法(不可重写) |
static |
|
静态(类)变量 |
静态(类)方法 |
volatile |
|
易失变量 |
|
native |
|
|
本地方法 |
synchronized |
|
|
同步方法 |
访问修饰控制符 | |||
private |
|
√ |
√ |
protected |
|
√ |
√ |
默认 |
√ |
√ |
√ |
public |
√ |
√ |
√ |
说明:
1、使用volatile关键字修饰的为“容易失去”的变量,即为该变量可能同时被多个线程所控制和修改,在程序执行过程中该变量可能被其它的程序所修改,通常volatile用来修饰接受外部输入的变量。如表示当前系统时间的变量。
2、使用native修饰的方法为其它(C、C++等)语言的特殊方法。
3、使用synchronized声明的方法为同步方法,即在多线程中该方法调用时会把当前的对象“加锁”,从而达到同步的目的。
Java的访问修饰符的控制范围 | ||||
控制范围 |
Private |
Protected |
Public |
默认(包) |
同一个类中 |
是 |
是 |
是 |
是 |
同包中子类 |
否 |
是 |
是 |
是 |
同包中非子类 |
否 |
是 |
是 |
是 |
不同包中子类 |
否 |
是 |
是 |
否 |
不同包中非子类 |
否 |
否 |
是 |
否 |
以上中需要注意对于不在同一个包中的子类在使用父类的protected的成员时,只能通过继承的方式调用而不能使用父类的引用来调用。
this与super的区别:
序号 |
比较点 |
This |
Super |
1 |
属性 |
This.属性是本类中的属性,如果本类中没有则会调用父类的属性 |
Super.属性子类直接调用父类的属性 |
2 |
方法 |
方法是调用本类中的方法,如果本类中没有则调用父类的同名方法 |
直接调用子类继承的父类的方法 |
3 |
构造 |
调用本类中的其它构造方法,但至少要求本类的其中一个构造中没有this() |
子类构造中调用父类构造,子类不管如何编写代码肯定首先调用父类的的构造 |
调用构造时必须是第一行 |
子类构造中必须是第一行 | ||
4 |
特殊点 |
This 表示当前对象 |
无此概念 |
5 |
Static |
不适用 |
不适用 |
方法重载与重写(重点)
序号 |
比较点 |
重载 |
重写 |
1 |
英文 |
Overload |
Override |
2 |
概念 |
方法名称一致,参数类型、个数和顺序不同 |
方法名称、参数列表,返回值完全相同 |
3 |
范围 |
同一个类中 |
继承关系 |
4 |
注意点 |
与返回值无关 |
访问权限不能变小 |
final关键字的使用:
修饰范围 |
作用与说明 |
类 |
该类不能被继承(断子绝孙),没有子类。final类中的方法默认为fianl。 |
方法 |
不能被子类的同名方法重写,但可以被继承。 |
成员变量 |
表示常量,只能赋值一次,不能再被修改。 |
构造方法 |
不适用 |
接口的特性:
1、所有接口方法隐含都是公共的和抽象的。
2、接口中定义的所有变量必须是公共的、静态的和最终的。
3、接口方法一定不能使静态的。
4、因为接口中的方法是抽象的,所以不能将其标示为final、strictfp、native。
5、接口可以扩展一个或多个接口
6、接口不能扩展除了其它接口之外的任何内容
7、接口不能实现另一个接口或类。