我已经在下面的代码中初始化了变量。这样初始化可以吗?
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();
}
}
最佳答案
您可以使用变量声明或构造函数进行初始化。有些人会争辩说,其中一个更好,但其中一个有效。我相信构造函数中初始化的参数是为了使所有变量初始化都在同一个位置,因为在某些情况下并非所有内容都可以在构造函数之外初始化。
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
。另外,构造函数比使用静态方法要好得多。
关于java - 这样初始化非静态成员变量会有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15656690/