final 可以用来修饰 类,方法,变量(成员变量和局部变量)
1 修饰类
表明这个类不能被继承,final 类中的所有成员方法都会被隐式的指定为 final方法
在使用final修饰类的时候,要注意谨慎选择,除非这个类真的在以后不会用来继承或者出于安全的考虑,尽量不要将类设计为final类
2 修饰方法
可以把该方法锁住,被 final 修饰的方法,在子类中不能被覆盖
类的 private方法,会隐式得被指定为 final方法
3 修饰变量
final 变量,如果是基本数据类型的变量,则其数值,一旦初始化,便不能再更改;如果是引用类型的变量,在初始化之后,便不能再指向另一个对象(但是其内容可以改变)
class MyClass {
void changeValue(final StringBuffer buffer) {
buffer.append("world");
}
}
public class Test {
public static void main(String[] args) {
MyClass myClass = new MyClass();
StringBuffer buffer = new StringBuffer("hello");
myClass.changeValue(buffer);
System.out.println(buffer.toString());
}
}
// 输出结果
helloworld
class MyClass {
public int i = 0;
}
public class Test {
public static void main(String[] args) {
final MyClass myClass = new MyClass();
System.out.println(++myClass.i);
}
}
// 输出结果
1