2012-02-01 9 views
1

以下の2つの方法の定義に違いはありますか? Eclipseはそれらのどれにも不平を言っていません。2つのメソッドの実装の違いは?

private void method1() { 
} 

private void method2() {  
}; 
+2

はこちらを参照してください。http://stackoverflow.com/questions/2724371/when-would-you-put-a-semicolon-after-a-method-closing-brace セミコロンは文法で許可されていますが、ここでは必要ではなく、そのような場合にはほとんどの人が使用しません。 – jham

答えて

4

セミコロンは方法の一部ではありません。

セミコロンは、クラス本体の一部です。

class AClass { 
    private void method() { } 

    ; 
} 

これは同等です。

クラス本体にイニシャライザ文を配置できます。これらは、インスタンスが作成されたときに実行されます。 1つのセミコロンが空文を構成するので、あまり有用ではありません。その他の初期化子は、より便利です。

class AClass { 
    private void method() { } 

    ; 

    int x = 5; 

    { 
     System.out.println("Hello world"); 
    } 

    int y = 5; ; ; 
} 
+0

これはどのような形式のコードですか? –

+1

標準?まあ...ほとんどの時間。空のステートメントは役に立たないので、効果がないことを証明するために新しい行に入れませんでした。ただし、それ以外はhttp://www.oracle.com/technetwork/java/codeconventions-141270.html#18761 –

+0

です。私は非常に奇妙に見えます:) –

6

;は助けると悪くはありません。 method2()に属しておらず、コンパイラによって無視されます。

1

メソッドの閉じ括弧の後にはセミコロンを入れてはいけません。

しかし、それを置くと、コンパイラはそれを空の文と見なし、それであなたの問題を与えていません。

1

構文砂糖。メソッド定義の間に差がないので、

(あなたは常にバイトコードが同じであることを確認するjavapを実行することができます)

関連する問題