gpt4 book ai didi

java - 原语的显式初始化

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:22:35 26 4
gpt4 key购买 nike

我知道 Java 原语有默认的初始化值;例如 0 代表 int

根据我的研究,我似乎不应该依赖这些值。我应该始终提供显式初始化吗?如果是,在哪里?

这是我的程序的一部分:

public class Calculator {

// Initialize value where it's declared?
private int value;

public Calculator() {
// Initialize value in constructor?
}

public void add(int other) {
value += other;
}
}

最佳答案

使用 Java 生成的默认值是绝对可以的,您不需要显式初始化 class 的实例或 static 字段。 Java 语言规范对此有要求,因此该语言的任何实现都必须遵守。换句话说,如果您使用成员变量的默认值,您的代码将保持 100% 的可移植性。这适用于原始类型和引用类型(后者使用 null 初始化)。

参见 Java Language Specification ,第 81 页,了解更多详情。

4.12.5 Initial Values of Variables

Every variable in a program must have a value before its value is used: - Each class variable, instance variable, or array component is initialized with a default value when it is created

必须提供显式初始化的唯一情况是声明局部变量时:

A local variable must be explicitly given a value before it is used, by either initialization or assignment, in a way that can be verified using the rules for definite assignment.

但是,由于未能初始化本地是一个编译时错误,编译器会在您运行程序之前查明每个丢失的初始化。

关于java - 原语的显式初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17219761/

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