黑马程序员技术交流社区
标题:
final问题
[打印本页]
作者:
执笔梦
时间:
2013-11-28 16:19
标题:
final问题
本帖最后由 执笔梦 于 2013-11-29 10:07 编辑
void chang(final int c)//为什么在这个方法不可改变。
{
i++;
}
int chang2(final int d)//在这个方法却可改变。。
{
return i+1;
}
这其中的原因还是不明白。
作者:
执笔梦
时间:
2013-11-28 16:20
o,我没说清楚,我说的是数据: i;
作者:
帅气的冬瓜
时间:
2013-11-28 16:39
两种表达式是不一样的
void chang(final int c)//为什么在这个方法不可改变。
{
i++;
//当然不会改变,因为 i 是先赋值,然后在自加的
}
int chang2(final int d)//在这个方法却可改变。。
{
return i+1;
//return返回的是i+1的值
}
作者:
李文帅
时间:
2013-11-28 16:46
首先楼主的代码有问题:
1.两个方法中的i都没有数据类型
2.两个方法中的i都没有初值
然后就是
两个方法被final修饰的变量是c和d,被final修饰的变量是不能再改变的,这是肯定的,c和d不能再被操作
而i并未被final修饰,i还是普通变量,可以对其进行操作
作者:
xibozglr
时间:
2013-11-28 16:48
楼主先得明白前++和后++的区别,i++是先使用i的值然后自加,++i是先自加然后再使用
作者:
默狼
时间:
2013-11-28 16:56
你的程序不对啊,变量都没声明。而且final是不能够修饰变量的。被final修饰的是不能够在改变的。
作者:
李文帅
时间:
2013-11-28 17:17
楼主,你是对final疑惑,还是对i++和i+1不明白啊
如果是对i++和i+1不明白的话,为什么把标题写成final问题啊
i++:++ 一元运算符,自增,用法是先使用i的值,然后再让i的值加1
return i+1:返回的是i+1的结果
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2