【发布时间】:2016-06-08 03:08:55
【问题描述】:
练习一些代码示例,我遇到了这个: 我已经在类级别声明了最终变量并尝试从方法中分配值,导致编译时错误(代码 2)。但是从构造函数它确实被分配了(code-1)。
代码 1:
class Immutable {
private final int age;
private final String name;
private Immutable(int age, String name) {
this.age = age;
this.name = name;
}
代码 2:
class Immutable {
private final int age;
private final String name;
private void me() {
this.age = 19;
this.name = "name";
}
当然,它们也可以在类级别分配,但不允许再次在构造函数中执行,因为它们只允许声明一次。但是,为什么最终变量是在构造函数中分配而不是从方法中分配的?
【问题讨论】:
标签: java methods constructor final