gpt4 book ai didi

java - Java中类的构造函数中的参数有什么问题?

转载 作者:行者123 更新时间:2023-12-01 22:02:14 25 4
gpt4 key购买 nike

在这段代码中,如果我在参数化构造函数中保留 int i,它会抛出错误。如果 int i 以外的任何东西都工作正常。

示例:int j 工作正常。这个错误是什么原因,请各位知识分子赐教。

//this program throws an error
class X
{
final int i;
X()
{
i = 0;
}
X(int i)//need to keep other than i
{
i = 20;
}
}

//this program works fine
class X
{
final int i;
X()
{
i = 0;
}
X(int j)
{
i = 20;
}
}

最佳答案

X(int i)
{
i = 20;
}

局部变量i(构造函数的参数)隐藏了实例变量i。因此 i = 20; 修改局部变量,而不是 final 同名实例变量,它保持未初始化状态。

您可以通过以下方式避免此问题:

X(int i)
{
this.i = 20;
}

X(int i)
{
this.i = i;
}

关于java - Java中类的构造函数中的参数有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53295376/

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