Final
Final是Java中的一个关键字,它用于表示一个变量、方法或类不能再被修改。一旦一个变量被声明为final,它的值就不能再次被赋值。final变量通常被用作常量,它们的值在声明时就被赋予了,一旦赋值,就不能再被改变了。
举一个例子,下面的代码声明了一个final的变量:
```java
final int num = 10;
```
这表示变量num的值不能在程序的任何地方被改变。如果尝试修改变量的值,编译器会报错。
Final关键字还可以用于方法的声明,表示该方法不能被子类重写。这种方法称为final方法。final方法通常被用于安全、性能或稳定性的考虑。
下面是一个final方法的例子:
public final void doSomething() {
// method body
}
这个方法不能被子类重写,因为它被声明为final。
Final关键字还可以用于类的声明,表示该类不能被继承。这种类称为final类。final类通常被用于不希望被继承的类。
下面是一个final类的例子:
public final class MyClass {
// class body
这个类不能被其他类继承,因为它被声明为final。
Static
Static是Java中的另一个关键字,它可以用于变量、方法和类的声明。Static关键字的作用是将变量、方法或类与实例解除绑定,使其成为类级别的。这意味着无论创建多少个类的实例,它们都共享同一个静态变量、方法或类。
举一个例子,下面的代码声明了一个静态变量:
static int count = 0;
这个变量被声明为静态,意味着它是类级别的。无论创建多少个类的实例,它们都共享同一个变量。
Static关键字还可以用于方法的声明,表示该方法是类级别的,而不是实例级别的。这种方法称为静态方法。静态方法不能访问实例变量或实例方法,因为它们没有实例的上下文。
下面是一个静态方法的例子:
public static void printCount() {
System.out.println(count);
这个方法是类级别的,可以通过类名直接调用,如MyClass.printCount()。它不能访问实例变量或实例方法,只能访问静态变量或静态方法。
Static关键字还可以用于类的声明,表示该类是静态内部类。静态内部类与外部类没有绑定关系,可以被其他类直接访问。静态内部类通常被用于实现辅助类或工具类。
下面是一个静态内部类的例子:
public class MyClass {
static class InnerClass {
// class body
}
这个静态内部类可以通过MyClass.InnerClass的方式进行访问。
Final和Static的组合
Final和Static可以组合在一起使用,表示一个常量。这种常量称为静态常量,可以被所有类直接访问。
举一个例子,下面的代码声明了一个静态常量:
static final int MAX_SIZE = 100;
这个常量是静态的,意味着它是类级别的。它还被声明为final,意味着它的值不能被改变。这个常量可以被所有类直接访问。
Final和Static是Java中的两个关键字,它们分别表示一个变量、方法或类不能再被修改,以及将变量、方法或类与实例解除绑定,使其成为类级别的。Final和Static可以组合在一起使用,表示一个常量。这种常量称为静态常量,可以被所有类直接访问。
网友留言(0)