在Java中,static和final是两个关键字,用于修饰类、方法和变量。
- static关键字:
- 用于修饰类:静态类是不能被实例化的,只能通过类名直接访问其中的静态成员。
- 用于修饰方法:静态方法是属于类的方法,可以直接通过类名调用,无需创建类的实例。
- 用于修饰变量:静态变量属于类,而不是属于某个实例,所有实例共享同一个静态变量。
例子:
public class Example { public static int staticVar; // 静态变量 public int instanceVar; // 实例变量 public static void staticMethod() { // 静态方法 System.out.println("这是一个静态方法"); } public void instanceMethod() { // 实例方法 System.out.println("这是一个实例方法"); } }
- final关键字:
- 用于修饰类:final类是不能被继承的,不允许其他类继承它。
- 用于修饰方法:final方法是不能被子类重写的,子类只能直接使用该方法,而不能对其进行修改。
- 用于修饰变量:final变量是一个常量,一旦赋值后就不能再改变。
例子:
public class Example { public final int constantVar = 10; // 常量 public final void finalMethod() { // final方法 System.out.println("这是一个final方法"); } }
注意:
- static和final可以同时修饰变量,表示声明一个静态常量。
- 在非静态方法中可以直接访问静态成员,但静态方法中不能直接访问非静态成员。