final声明疑惑?
发表在Java答疑区
2017-06-18
是否精华
是
否
版块置顶:
是
否
public class FinalDateTest {
final int VALUE_ONE = 6;// final 成员变量不可更改
final int BLANK_FINALVALUE;// 在声明final变量时没有赋值,称为空白final
public FinalDateTest() {
BLANK_FINALVALUE = 8;// 在构造方法中为空白final赋值
}
int doit(final int x) {// 设置final参数,不可以改变参数x的值
return x + 1;
}
int dosomething() {
final int i = 7;// 局部变量定义为final,不可改变i的值
return i;
}
public static void main(String[] args) {
FinalDateTest fd = new FinalDateTest();
System.out.println(fd.VALUE_ONE);
System.out.println(fd.BLANK_FINALVALUE);
System.out.println(fd.doit(2));
System.out.println(fd.dosomething());
}
}
疑问:
int doit(final int x) {// 设置final参数,不可以改变参数x的值
return x + 1;
}
语句中 参数x被final修饰,用 System.out.println(fd.doit(2));语句输出为:3 ,这里不是改变了x的值吗?
与
int doit( int x) {
return x + 1;
}
相比较,输出的结果都是3,这里的参数x 有什么差别?
于2017-06-18 13:55:16编辑
首页上一页 1 下一页尾页 3 条记录 1/1页