黑马程序员技术交流社区
标题:
代码查错
[打印本页]
作者:
呆呆呆
时间:
2013-12-18 16:34
标题:
代码查错
本帖最后由 呆呆呆 于 2013-12-18 17:57 编辑
class Something
{
int i;
public void doSomething()
{
System.out.println("i = "+ i);
}
}
<DIV class=blockcode>
<BLOCKQUOTE>class Something
{
final int i;
public void doSomething()
{
System.out.println("i = "+ i);
}
}
复制代码
这两段代码只有一个地方不同,就是多了一个final,为什么后面一个会错而前面的正确。
<P> </P>
复制代码
作者:
風諾
时间:
2013-12-18 16:47
不知道,貌似没错
作者:
§傻、才乖
时间:
2013-12-18 17:43
final 修饰的是常量,是要直接赋值的吧
作者:
恩恩
时间:
2013-12-18 17:52
首先你需要知道的是final 修饰的变量代表什么意思,final 修饰的变量代表的是常量类型,被赋值一次后就不能在修改了。 是固定不变的。还需要知道,在调用这个final 常量之前你必须要给这个常量赋值,否则会报错,null。 因为这个变量是一个固定不变的值,你在这里没有给这个变量赋值,所以会报错。
作者:
夏德宇
时间:
2013-12-18 20:17
final翻译过来是: 最终的;不可更改的。一目了然吧,被final修饰的变量是不可更改的,就是常量了,定义的是一个int类型的常量,成员变量会被自动赋初始值,常量必须自己赋值,否则报错。
再则,常量值是固定的的i ++ 相当于从新给i赋值,所以也出错。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2