2011-07-19 3 views
1

mainメソッドを含む同じファイル内にクラスを作成することはできますか?私が練習しているプログラミングコンテストは、ソリューションとして1つのファイルしか受け付けないので、クラスを別のファイルに書き込んで送信することはできません。メインファイル内にJavaクラスを作成していますか?

内部クラスを作成することはできますが、通常のクラスと同じ機能ですか?

答えて

2

はい、複数のトップレベルクラスを1つの.javaファイルに定義することができます。 Java: Multiple class declarations in one file

ほとんどの場合、ネストされたクラスはまったく同じように動作します。 implicit reference to the outer classを避けるために、そのようなクラスstaticを宣言することができます。

+0

定義上、内部クラスは非静的ネストされたクラスです。静的なネストされたクラスはそれだけで呼ばれます。 :-) –

+0

@Chris Jester-Young:公正なポイント、私は私の専門用語がちょっとわかりませんでした。一定。 – NPE

0

あなたは常にメインメソッドを持つクラスを持っていますが、内部クラスもこのクラスに入れることができます。このような

何か:

public class A { 

    protected class B { 
    } 

    public static void main(String[] args){ 
    } 
} 
0

内部クラスは、静的メソッドを持つことができませんので、あなたがそこにmainを持つことができません。ただし、静的ネストされたクラスは実際にmainを持つことができます。

また、aixの回答によると、同じソースファイルに複数のパッケージプライベートトップレベルクラスを含めることもできます。

0

コンパイラの観点から見ると、単一ソースファイルに複数のクラスを持つことは100%有効です。私はこの機能をしばしば単一の画面でオブジェクト階層を作成し、後で独自のソースファイルに対するクラスとインタフェースをリファクタリングするために使用します。 ソースファイルには、公開できるクラスは1つのみであることに注意してください。

public class Runner { 
    public static void main(String[] args){ 
     new A().process(); 
    } 
} 
class A{ 
    public void process(){ 
     ... 
    } 
} 
関連する問題