我已在下面的代码中初始化变量,如下所示。可以像这样初始化吗?
public class StaticInit {
int x = getInt();
String z = "Lucky Number " + processInt(x);
public static int getInt() {
int ret = 10;
System.out.println("ret- " + ret);
return ret;
}
public static int processInt(int toProcess) {
int toRet = toProcess / 2;
System.out.println("toRet- " + toRet);
return toRet;
}
public static void main(String[] args) {
StaticInit sit = new StaticInit();
}
}
答案 0 :(得分:2)
您可以使用变量声明或构造函数初始化。有些人会争辩说,其中一种更好,但要么有效。我相信构造函数中初始化的参数是这样的,所有变量初始化都在同一个地方,因为在某些情况下,并不是所有的东西都可以在构造函数之外初始化。
public class StaticInit {
int x = getInt();
String z = "Lucky Number " + processInt(x);
}
或
public class StaticInit {
int x;
String z;
public StaticInit() {
x = 10;
z = x / 2;
}
}
特别是对于这种情况,我肯定会建议使用构造函数,因为z
依赖于x
。另外,构造函数比使用静态方法更好。
答案 1 :(得分:2)
就个人而言,我只是在构造函数中初始化它而不是getInt()
。
除非你打算在外部使用getInt()
函数,否则我没有意识到这一点,特别是因为它返回了一个硬编码值。