【发布时间】:2021-06-18 16:48:19
【问题描述】:
所以在Java中,我对此感到困惑很长时间。 当我在另一个实例中需要一个实例时,我有两种方法:
1.将变量a声明为成员变量,然后在构造函数中实例化:(这是正常的做法)
public class ClassA {
SomeType a;
ClassA(){
a = new SomeType();
}
}
2.在成员变量定义中直接实例化
public class ClassA {
SomeType a = new SomeType();
}
那么第二个可行吗,为什么或为什么不可行?
【问题讨论】:
-
看字节码是一样的
-
这是一个偏好问题,但如果你不介意我在这里强加我的意见,我会不惜一切代价避免方法 2。当您查看代码时只会感到困惑,因为不清楚首先初始化哪些变量。然后你必须去谷歌它,找到告诉你实例变量在构造函数运行之前被初始化的页面,然后你必须回去弄清楚这对你的代码意味着什么。它绝对不是自记录代码。我会总是在构造函数中初始化所有实例变量。
-
它们都是可行的......在这个词的简单英语意义上。
标签: java