黑马程序员技术交流社区

标题: 为什么要加final [打印本页]

作者: yangyinhui    时间: 2013-4-5 20:11
标题: 为什么要加final
  1. public static void main(String[] args) {
  2.                  final Printer p = new Printer();
  3.                
  4.                 new Thread(){
  5.                         public void run() {
  6.                                 while(true)
  7.                                         try {
  8.                                                 p.print1();
  9.                                         } catch(Exception e) {
  10.                                                 e.printStackTrace();       
  11.                                         }
  12.                         }       
  13.                 }.start();
复制代码
final Printer p = new Printer();这段代码前面为什么要加final?
作者: 管章鹏    时间: 2013-4-5 20:26
当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变。    其初始化可以在两个地方,一是其定义处,也就是说在final变量定义时直接给其赋值,二是在构造函数中。这两个地方只能选其一,要么在定义时给值,要么在构造函数中给值,不能同时既在定义时给了值,又在构造函数中给另外的值。下面这段代码演示了这一点:

2.jpg (62.7 KB, 下载次数: 13)

具体代码

具体代码

作者: tshch1989    时间: 2013-4-5 21:34
匿名内部类定义在了类的局部,只能访问被final修饰的变量
作者: tshch1989    时间: 2013-4-5 21:36
2楼回答的天南海北啊!无语!!!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2