读书人

请问一个final变量的有关问题

发布时间: 2013-11-06 16:26:37 作者: rapoo

请教一个final变量的问题


public class Test{
public int test(final int x){
return ++x;
}
}

这代码有错么?我感觉没错啊 final只是引用不能变,值可以变吧?
[解决办法]
刚百度了一个比较详细的 楼主看看 http://zhidao.baidu.com/question/357580512.html
[解决办法]
final 修饰的变量值是不能变的,这个是基本类型,哪来的引用?
[解决办法]
引用:

public class Test{
public int test(final int x){
return ++x;
}
}

这代码有错么?我感觉没错啊 final只是引用不能变,值可以变吧?


你理解错了 对于基本类型 值不能改
[解决办法]
public int test(final int x) {
return ++x; //编译异常
}


int i = 1;
System.out.println(test(i)); //结果为2
System.out.println(i); //结果为1
[解决办法]
final修饰的为常量,不能再对其进行任何的修改。
[解决办法]
能编译过去吗?
[解决办法]
return ++x; //编译异常
当函数参数为final类型时,你可以读取使用该参数,但是无法改变该参数的值
[解决办法]
final修饰的变量为编译器级别的常量,编译器不允许其值被改变,因此定义变量同时必须初始化,否则编译器会报错。
[解决办法]
final 修饰的 是常量,就是常数
[解决办法]
final就是最后一次赋值,值不再变化了

读书人网 >J2EE开发

热点推荐