gpt4 book ai didi

java - 从构造函数分配 Final 变量 |方法不允许。为什么?

转载 作者:行者123 更新时间:2023-12-02 03:31:44 25 4
gpt4 key购买 nike

练习一些代码示例,我遇到了这个:我已经在类级别声明了最终变量并尝试从方法中赋值,导致编译时错误(代码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";
}

当然,它们也可以在类级别分配,但不允许再次在构造函数中进行分配,因为它们只允许声明一次。但是,为什么最终变量是在构造函数中分配的,而不是在方法中分配的?

最佳答案

构造函数执行一次。方法可以执行多次。对最终变量的赋值只允许一次 - 就这么简单。 (如果它们在构造后可以被赋予不同的值,它们就不会是非常“最终”的,不是吗?C# 允许多次设置只读变量,但仍然只能在构造函数中设置......Java 比这更严格一点.)

关于java - 从构造函数分配 Final 变量 |方法不允许。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35625672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com