gpt4 book ai didi

java - 尝试理解最终变量

转载 作者:行者123 更新时间:2023-12-01 07:23:58 25 4
gpt4 key购买 nike

最终变量。我已经阅读了这个网站和其他网站上可以找到的所有内容,我几乎理解它们,但我仍然有点困惑。

所以,我知道为什么我们将变量声明为final的官方答案:它锁定变量并防止它被重新初始化。我的问题是:

  1. 如果不能重新初始化,它的值仍然可以改变,对吧?例如:

    final int a = 1;
    a = a + 1;

    这种代码仍然有效,还是“final int a”会永远被锁定为 1?

  2. 如果上面的int a的值在声明为final之后仍然可以改变,那final还有什么意义呢?

我想问题 2 是我最大的问题。我不断看到所有这些关于它如何锁定变量的解释,有些人甚至说他们将大部分变量声明为final,但这样做的动机对我来说没有意义。

最佳答案

final int a = 1; 
a = a + 1;

不,此代码不会通过编译,因为它尝试为最终变量分配新值。

但是,如果 a 的类型是某个可变类的引用类型,则您将能够改变对象的状态。例如:

final StringBuidler a = new StringBuilder (20);
a.append ("foo");

变量的最终性只会阻止您更改其值。如果最终变量引用其状态可以修改的对象,则最终性不会阻止您修改该状态。

关于java - 尝试理解最终变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29045706/

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