gpt4 book ai didi

java - 将类型放在已声明变量的前面会重新声明它吗?

转载 作者:行者123 更新时间:2023-12-03 22:12:36 27 4
gpt4 key购买 nike

我在忙于完成的作业中遇到了这个问题。我已修复错误,我的程序现在运行良好,但我无法理解错误发生的原因。

导致问题的原始代码摘录是这样的:

public class VendingMachine {
int paid=0;
int charge=0;
int stock1=0;
int stock2=0;

public static void main(String[] args) {
}
public void initialise(int pd, int chrg, int stck){
int paid = pd;
int charge = chrg;
int stock1 = stck;
int stock2 = stck;
}

}

此方法 initialise() 正被另一个类访问,但是当另一个类访问它时,我收到错误消息“变量 stock1 可能尚未初始化”。

我摆弄了一下,最终让我的代码工作,因为我意识到我不必要地再次将 int 放在变量前面。所以现在可以使用的更改方法是:

public void initialise(int pd, int chrg, int stck){
paid = pd;
charge = chrg;
stock1 = stck;
stock2 = stck;
}

通过再次将“int”放在我的变量前面,我是在重新声明它们吗?为什么原始代码有问题?

提前致谢!

最佳答案

这会将变量重新声明为局部变量。由于局部变量优先于类成员(字段),您将把参数值写入这些局部变量,而不是字段。您想要的是第一种方法。

关于java - 将类型放在已声明变量的前面会重新声明它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25219491/

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