gpt4 book ai didi

Java变量值初始化

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

我是 Java 初学者,正在努力理解以下变量初始化问题,希望得到专家的帮助。

给出考试中的代码:

public class SimpleCalc {
public int value;
public void calculate() { value += 7; }
}

并且

public class MultiCalc extends SimpleCalc {
public void calculate() { value -= 3; }
public void calculate(int multiplier) {
calculate();
super.calculate();
value *= multiplier;
}
public static void main (String[] args) {
MultiCalc calculator = new MultiCalc ();
calculator.calculate(2);
System.out.println(calculator.value);
}
}

我的理解是,这需要抛出运行时异常,因为变量“value”永远不会获得分配给它的实际初始值(public int value;)。但是,代码的工作方式和行为就好像变量“value”被赋值为 0(与 public int value=0; 相同)。有人可以解释一下为什么会发生这种情况吗?非常感谢

最佳答案

. But, the code works and behaves as if the variable "value" is assigned 0 (same as public int value=0;).

java中的实例变量获取默认值。即,int 获取 0 作为默认值,float 获取 0.0 等等。因此,如果您不初始化,它们将获得默认值。

Data Type   Default Value (for fields)
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
char '\u0000'
String (or any object) null
boolean false

关于Java变量值初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16165027/

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