final的用法及注意事项:
1、final修饰的类无法被继承。
2、final修饰的方法无法被覆写。
3、final修饰的局部变量,一旦赋值,不可再改变。示例代码:
class A {
public void f1() {
final int i;
i = 1000;
// 不能重新赋值
i = 1;
}
}
4、final修饰的成员变量必须“显式”初始化。示例代码:
class A {
final int i; //错误,final修饰的成员变量必须初始化。
final int i = 1; // 正确
final int k; // final修饰的成员方法在构造方法调用结束之前赋值就可以。
A() {
k = 200;
}
}
5、final修饰的成员变量一般和static联用。
class MathClass {
// 常量,Java规范中要求所有的常量大写
public static final double PI = 3.14;
}
6、final修饰的引用类型,该引用不可再指向其他的java对象,但是对象的属性是可以修改的,示例代码:
public class Test1 {
public static void main(String[] args) {
final Customer c = new Customer("java", 0);
// c = new Customer("C", 0);
c.name = "python";
c.age = 0;
}
}
class Customer {
String name;
int age;
public Customer(String name, int age) {
this.name = name;
this.age = age;
}
}