5

Javaのメインメソッド内にメソッドを持つことは構文的に正しいですか? 例えば

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

(私はとして宣言countdownしてprivateいるので、クラス内からのみ呼び出すことができることに注意してくださいBlastoff。これはあなたの意図であると思いますか?)

于 2013-02-23T20:30:32.480 に答える