黑马程序员技术交流社区

标题: 初始化时i不是有默认值吗,但为什么有错啊 [打印本页]

作者: 习嘻嘻    时间: 2013-11-16 00:38
标题: 初始化时i不是有默认值吗,但为什么有错啊
本帖最后由 习嘻嘻 于 2013-11-16 10:50 编辑

class Something {
    final int i;
    public void doSomething() {
        System.out.println("i = " + i);
    }

    public static void main(String[] args)
    {
        new Something().doSomething();
    }
}



作者: 零下五度的水    时间: 2013-11-16 00:48
你这不是找茬么,定义一个常量不赋值,就算人家语法允许,有什么意义么你这个
作者: wjj410830911    时间: 2013-11-16 03:39
你定义了final  又没有给i赋值   系统是不会给i赋予初始化值的  因为你final了  i就不可以被改变  连系统默认初始化也不可以。
解决办法 要么你把final去掉   要么直接给final赋予一个值让他变成常量 final int i = 10;
作者: smileven    时间: 2013-11-16 10:05
final修饰的常量是不能在后面的代码中修改值的。所以你必须在定义final常量的时候一块初始化。
final int i = 10;
作者: java--周群    时间: 2013-11-16 20:16
栈内存中的数据是没有默认初始化值的哦,要手动赋值




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