关于final关键字

来源:互联网 发布:linux informix 卸载 编辑:程序博客网 时间:2024/06/05 17:11
final只是表示引用不能变,不代表被引用的对象不能改变。
例如:
final StringBuffer sb=new StringBuffer("aa");
sb.append("b");            //这是可以的,他并没有改变引用,只是改变引用的对象。
sb=new StringBuffer("cc");         //这是不可以的,他试图改变引用。

final int a=1;
a=2;        //这是不可以的,a原来指向常量区的区中的1,后来想指向常量区的2,出现错误。

若类中成员属性用final来修饰,因为final的instant variable没有默认值,必须在构造函数结束前被赋予一个值。所以有如下两种方法来初始化final变量。
  • class Test{
final int a = 1;    //直接初始化
      }
  • class Test{
final int a;
        Test(){
             a = 1;
        }
      }
0 0
原创粉丝点击