sri*_*nth 2 java methods constructor final
练习一些代码示例,我发现了这个:我已经在类级别声明了最终变量并尝试从方法中分配值,导致编译时错误(代码-2).但是从构造函数中它确实被赋值(代码-1).
代码-1:
class Immutable {
private final int age;
private final String name;
private Immutable(int age, String name) {
this.age = age;
this.name = name;
}
Run Code Online (Sandbox Code Playgroud)
代码-2:
class Immutable {
private final int age;
private final String name;
private void me() {
this.age = 19;
this.name = "name";
}
Run Code Online (Sandbox Code Playgroud)
当然,它们也可以在类级别分配,但不允许再次在构造函数中执行,因为它们只允许声明一次.但是,为什么最终变量在构造函数中分配而不是从方法中分配?
构造函数执行一次.方法可以多次执行.最终变量的赋值只允许一次 - 就这么简单.(如果在构造之后可以为它们分配不同的值,它们就不会是"最终的"它们会不会?C#允许多次设置readonly变量,但仍然只在构造函数内... Java只是比那个更严格.)
| 归档时间: |
|
| 查看次数: |
254 次 |
| 最近记录: |