前言

访问控制 private protected public
类,方法和变量修饰符 abstract class extends final implements interface native
new static strictfp synchronized transient volatile strictfp
var record
程序控制 break continue return do while if else
for instanceof switch case default
错误处理 try catch throw throws finally assert
包相关 import package
基本类型 boolean byte char double float int long
short
变量引用 super this void
枚举 enum
未使用(保留) goto const _

有关Java关键字的一些值得注意的要点:

- **const**和**goto**是受人敬畏的单词,但未使用。
- **true**,**false**和**null**是 **literals (**文字),而不是关键字,也不是保留字,但是,它们仍然不能用作程序中的标识符。
- 从Java 8开始,**default**关键字也用于在接口中声明默认方法。
- 从Java 10开始,单词 **var** 用于声明局部变量(局部变量类型推断)。为了向后兼容,你仍然可以使用**var**作为变量名。因此**var**是保留字,而不是关键字。
- 所有关键字均为小写。

关键字constgoto被保留,即使它们当前未使用。如果这些C ++关键字错误地出现在程序中,这可能使Java编译器产生更好的错误消息。_保留关键字(下划线),以备将来在参数声明中使用。

有时会错误地将各种字符序列假定为关键字:

进一步的十个字符的序列是_受限制的关键字_: openmodulerequirestransitiveexportsopenstousesprovides,和with。这些字符序列被标记化的如仅其中它们显示为终端关键字_ModuleDeclaration_, ModuleDirective,和 RequiresModifier_制作(§7.7)。它们被标记为其他任何地方的标识符,以与引入受限关键字之前编写的程序兼容。有一个例外:requires在_ModuleDirective 生成中字符序列的右侧,transitive除非后面有分隔符,否则该字符序列将被标记为关键字,在这种情况下,该字符序列将被标记为标识符。

详细解释

1、访问控制

  1. private 私有的

private 关键字是访问控制修饰符,可以应用于类、方法或字段(在类中声明的变量)。 只能在声明 private(内部)类、方法或字段的类中引用这些类、方法或字段。在类的外部或者对于子类而言,它们是不可见的。

  1. protected 受保护的

protected 关键字是可以应用于类、方法或字段(在类中声明的变量)的访问控制修饰符。可以在声明 protected 类、方法或字段的类、同一个包中的其他任何类以及任何子类(无论子类是在哪个包中声明的)中引用这些类、方法或字段。

  1. public 公共的

public 关键字是可以应用于类、方法或字段(在类中声明的变量)的访问控制修饰符。 可能只会在其他任何类或包中引用 public 类、方法或字段。

那么我们总结一下,Java之中的权限访问修饰符(其实还有一种权限访问情况,就是默认情况,暂且称作default吧):