黑马程序员技术交流社区

标题: Final问题 [打印本页]

作者: Style栉    时间: 2014-3-30 19:46
标题: Final问题
本帖最后由 Style栉 于 2014-3-30 21:08 编辑

Final修饰一个引用变量。请问这个引用变量所指的哪个对象的数据可以改变吗。为什么
作者: ehuashao    时间: 2014-3-30 19:59
final修饰的类与普通类几乎没有区别,只是final修饰的类不能被继承而已。
  1. public final class FinalTest {

  2.         int a=10;
  3.         final int b=20;
  4.         public static void main(String[] args) {
  5.                 FinalTest f = new FinalTest();
  6.                 f.a=30;
  7.                 //f.b=40; 直接显示不能对final修饰的变量赋值
  8.                 System.out.println(f.a);
  9.                 System.out.println(f.b);               
  10.         }
  11. }
复制代码

看上面代码,输出结果为:30 20
FinalTest是一个被final修饰的类,它内部有两个变量。一个被final修饰,一个没有。通过程序可以看出被final修饰的类中的普通成员变量时可以改变值的。但对于由final修饰的成员变量则不能。
作者: 杨殿生    时间: 2014-3-30 20:17
final:最终,作为一个修饰符
        1,可以修饰类,函数,变量
        2,被final修饰的类不可以被继承,为了避免被继承被子类复写功能
        3,被final修饰的方法不可以被复写
        4,被final修饰的变量是一个常量只能被赋值一次,既可以修饰成员变量
        5,内部类定义在类中的局部位置上时,只能访问该局部被final修饰的局部变量
他并不能修饰引用变量
作者: 一诺千金    时间: 2014-3-30 22:49
被final修饰的变量是一个常量只能被赋值一次,所以就当做常量来看吧




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