我在外部声明一个final变量时没有赋初值就报错, 在方法中就没问题 这是为什么
谢谢 各位的帮助 ☺
在java里面修饰词 final修饰过的变量的值是不可以被修改的。在外部声明的变量在这个类一杯调用就初始化了,如果你没有对final修饰过的变量赋值,编译器初始化这个类的时候发现一个不可被修改的变量没有值,编译器必然报错。但是在方法内如果没有调用这个方法,就不会初始化这个变量,编译器就不会报错,在方法里可以先声明后赋值。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-04-15
final你可以先定义不给赋值,但是必须保证在使用的时候赋过值,而且funal定义的定值在赋值后是无法进行改变的,相比之下他比变量好在运行速度比较快,而且可以防止其他集成类去修改他从而改变他的意义
第2个回答 2013-04-15
声明final的成员变量(即外部)时必须赋值。声明局部的final变量,可以先声明 后赋值,这种情况下,如果声明时不赋值就使用 会报错。
第3个回答 2013-04-15
作为类的属性时,它被定义为final时就必须有时,因为在实例化时会使用
第4个回答 2013-04-15
可以到 生命的水java,在java频道,修饰符下有不少。