介绍java(基于java11)中所有关键字,以及主要重要的关键字详解。
1 Java 11中的关键字:
1.1 类型声明与变量定义
boolean
:声明布尔类型变量,只有两个可能值 true 或 false。byte
:声明一个8位有符号整数类型变量。short
:声明一个16位有符号整数类型变量。int
:声明一个32位有符号整数类型变量。long
:声明一个64位有符号整数类型变量。float
:声明一个单精度(32位)浮点数类型变量。double
:声明一个双精度(64位)浮点数类型变量。char
:声明一个16位Unicode字符类型变量。void
:表示方法不返回任何值。
1.2 访问权限修饰符
public
:公共,修饰类,方法变量,允许任意对象访问。protected
:保护,修饰方法与变量,只允许同一包内,或该类子类(即使在别的包)的对象访问。private
:限制,修饰方法与变量,为当前类内部。default
:默认,修饰类,方法变量,没有以上任一访问修饰符时,默认为default权限,不用在声明时特地写出来
1.3 类、成员修饰符
-
static
:静态,修饰方法或变量,会让方法或变量变成类级别,称为静态变量或类变量,可以直接类名访问,不需对象访问。 -
final
:不可变,可以应用于类(不能被继承)、方法(不能被重写)或变量(一旦赋值不能更改)。 -
abstract
:抽象,声明抽象类或抽象方法,抽象类不能实例化,抽象方法没有具体实现。 -
strictfp
:不常见,严格浮点指令集,保证跨平台时浮点运算的一致性。
1.4 流程控制与异常处理
if
:条件语句关键字,用于执行基于条件的选择性代码块。else
:与if
配合使用,表示当条件不满足时执行的代码块。switch
:多分支选择结构关键字。case
:配合switch
使用,标识每个分支的入口条件。default
:在switch
结构中提供默认分支。while
:循环结构,重复执行一段代码直到给定条件不再满足。do
…while
:先执行循环体再检查循环条件的循环结构。for
:循环结构,通常用于已知循环次数的情况。break
:跳出当前循环或switch
语句。continue
:结束当前迭代,继续下一次循环。try
:开始异常处理块,包含可能抛出异常的代码。catch
:捕获并处理在try
块中抛出的异常。finally
:无论是否发生异常,都会被执行的代码块。throw
:显式抛出异常对象。throws
:声明方法可能会抛出的异常类型列表。
1.5 类、接口与包相关
class
:声明类的关键字。interface
:声明接口的关键字,接口定义了一组方法签名和常量。extends
:类继承另一个类的关键字。implements
:类实现接口的关键字。package
:声明源文件所在的包名,用于组织代码和管理命名空间。import
:导入其他包中的类或全部类。
1.6 其他重要关键字
this
:引用当前对象实例的引用关键字。super
:在子类中引用父类的方法或字段。new
:创建新对象实例的关键字。instanceof
:操作符,检查对象是否属于某个类或其子类。synchronized
:用于声明同步方法或同步代码块,以实现线程安全。volatile
:声明变量在并发环境下具有可见性和有序性。transient
:标记字段不会被序列化。native
:声明一个方法由非Java语言实现,通常用于JNI调用本地方法。assert
:断言关键字,用于测试布尔表达式的预期结果,主要用于开发阶段调试。
1.7 Java保留关键字但未使用的
goto
:Java中保留但未使用的关键字,曾经在某些其他编程语言中有跳转功能。const
:同样是Java中预留的关键字,但目前并未赋予实际功能。
请注意,以上信息适用于Java 11及之前的大多数版本。
常用关键字详解
private关键字
private
属于访问权限修饰符(access modifier),用于控制类成员(变量和方法)的可见性及可访问范围。
-
定义:
- 当你在一个类中声明一个变量或方法时,如果使用了
private
关键字,那么这个成员就只能在这个类的内部被访问。
- 当你在一个类中声明一个变量或方法时,如果使用了
-
作用:
- 封装(Encapsulation):
private
关键字是实现封装的基础,它隐藏了类的内部细节,确保外部代码不能直接访问或修改类的私有数据成员,从而提高了代码的安全性和稳定性。 - 数据保护:通过将字段(成员变量)设为
private
,限制对这些字段的直接访问,强制其他类通过公共的 getter 和 setter 方法来读取或修改它们,从而可以对数据进行验证、转换或其他必要操作。
- 封装(Encapsulation):
-
访问权限:
private
成员只能在其所在的类内被访问,这意味着同一类中的静态方法、实例方法、构造器都可以访问该类的private
成员。- 同一包内的其他类、子类以及所有外部类都不能直接访问
private
成员。 - 若需要提供对外部的访问途径,通常会创建公共的(public)getter和setter方法(对于字段)或者公共的方法(对于行为)。
-
示例:
public class MyClass { private String secretMessage; // 私有变量 public MyClass(String message) { // 公共构造器 this.secretMessage