Java中的final关键字修饰的项不可更改。具体来说就是
- final class不能被继承
- final 变量的值不能更改
- final方法不能被覆写。
final修饰的变量值得多说两句,对于引用类型的变量,final的意思是声明变量时它指向哪个对象,它就要一直指向那个对象,那个对象变化与否都没关系。上代码:
public class FinalDemo {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer("original string");
sb = new StringBuffer("another string");
}
}
这段代码可以编译通过。
public class FinalDemo {
public static void main(String[] args) {
final StringBuffer sb = new StringBuffer("original string");
sb = new StringBuffer("another string");
}
}
这段代码编译时会报错:FinalDemo.java:5: 错误: 无法为最终变量sb分配值
sb = new StringBuffer(“another string”);
^
1 个错误
public class FinalDemo {
public static void main(String[] args) {
final StringBuffer sb = new StringBuffer("original string");
sb.append("another string");
}
}
这段代码可以编译通过。