5

在 Java 的 main 方法中包含一个方法在语法上是否正确?例如

class Blastoff {

    public static void main(String[] args) {

        //countdown method inside main
        public static void countdown(int n) {

            if (n == 0) {
                System.out.println("Blastoff!");
            } else {
                System.out.println(n);
                countdown(n - 1);
            }
        }
    }
}
4

1 回答 1

7

不,不直接;但是,方法可以包含本地内部类,当然该内部类可以包含方法。这个 StackOverflow 问题给出了一些例子。

但是,在您的情况下,您可能只想countdown从内部调用main;你实际上并不需要它的整个定义在里面main。例如:

class Blastoff {

    public static void main(String[] args) {
        countdown(Integer.parseInt(args[0]));
    }

    private static void countdown(int n) {
        if (n == 0) {
            System.out.println("Blastoff!");
        } else {
            System.out.println(n);
            countdown(n - 1);
        }
    }
}

(请注意,我已声明countdownprivate,因此只能从Blastoff类中调用它,我假设这是您的意图?)

于 2013-02-23T20:30:32.480 回答