class FinalVariable {
final String s2;
FinalVariable() { //#1
s2 = "s2";
}
FinalVariable(String s) { //#2
new FinalVariable();
s2 = "s2";
}
FinalVariable(double d) { //#3
this();
// s2 = "s2";
}
}
谁可以告诉我为什么#2处可以给final变量再次赋值而#3又不行,两者有什么区别,谢谢!
final String s2;
FinalVariable() { //#1
s2 = "s2";
}
FinalVariable(String s) { //#2
new FinalVariable();
s2 = "s2";
}
FinalVariable(double d) { //#3
this();
// s2 = "s2";
}
}
谁可以告诉我为什么#2处可以给final变量再次赋值而#3又不行,两者有什么区别,谢谢!
解决方案 »
- 麻烦各位大虾帮我解决一下这个问题,小弟才学java
- 学习java才几天,遇到一道‘菜鸟’级练习题,但对于我来说还是很难,请大家帮帮忙看看
- 整列数据的交换
- JAVA static 狂不理解.回答的好+++++++++++++++++++++++++++++++++
- 关于编写邮件发送程序,请大家帮忙!EmailAttachment
- 关于jTextField的值
- applet不能正常运行,不知怎么解
- 关于JNI的一点困惑
- c++程序与java程序之间交换数据--发挥你的聪明才智的问题!
- 今天犯了个有点二逼的错误.....
- 如何设置JMenuItem的快捷键,就是KEY_STROKE怎么写?
- 时间比较的问题
#2处的new FinalVariable() 是创建了一个新的对象,没有对现有的s2赋值,所以可以s2赋值
比如:你前面的人叫:下一个,那就是轮到你,然后你也叫“下一个”,那是叫下一个人,而不是你
说的好,呵呵~~~~~~~``
就是,这个对象是在 方法里创建的,而不是你用new 创建的