黑马程序员技术交流社区
标题:
求指导
[打印本页]
作者:
yang1352546
时间:
2014-5-28 16:24
标题:
求指导
本帖最后由 yang1352546 于 2014-5-29 20:29 编辑
被final修饰的成员变量,只能在构造方法中赋值,不可以在普通方法中赋值?为什么
作者:
海世山盟
时间:
2014-5-28 16:36
final修饰的变量叫最终变量。也就是一加载就初始化了。后边就不能动了。就好像一个人 一去上户口他的身份证号码就固定了。当你后边去想弄个假身份证号码 那你就违法了。
不仅如此,final还有一些其他的特型,比如final修饰的类不能被继承,final修饰的方法不能被覆盖,道理都是一样的。
作者:
code2014
时间:
2014-5-28 17:57
楼上正解
作者:
tacyjay在路上
时间:
2014-5-28 20:09
本帖最后由 tacyjay在路上 于 2014-5-28 20:10 编辑
应该说,final定义的变量在初始化以后就不能改变了,是个常量;
如果final定义的变量没有进行初始化,那么,允许赋值一次。
跟他的位置在哪儿,没有什么关系。
示例:
public class FinalDemo {
public static void main(String[] args) {
final int x = 9;
final int y;//此处并未对y进行初始化,所以可以再下面赋值一次。
//x+=3;//报错,final定义的变量在初始化之后,就不能更改
y=3;//允许
//y+=2;//不允许,原因同上。
System.out.println(x+".."+y);//9..3
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2