2

我在下面的代码中初始化了变量,如下所示。可以这样初始化吗?

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();
    }
}
4

2 回答 2

2

就个人而言,getInt()我只是在构造函数中初始化它,而不是拥有 。

除非您要在getInt()外部使用该函数,否则我看不出拥有它的意义,特别是因为它返回一个硬编码的值。

于 2013-03-27T10:34:00.220 回答
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. 另外,构造函数比使用静态方法要好得多。

于 2013-03-27T10:33:16.030 回答