あなたのインストラクターからの質問は、Javaの{symbolの単一の統一された意味がないのであまり良くありません。
ステートメントの文脈では、{記号はブロックステートメントの開始を示すために使用されます。これは、if文、whileループ、forループ、do ... whileループ、switch文などのすべての用途を説明していますが、技術的には単一の文にしか当てはまりませんが、ブロック文でよく使用されます:
public class NewClass {
...
public void foo() {
...
}
}
それができる:方法又はタイプ(クラス/インタフェース/列挙/アノテーション)の文脈において
if (x == 0) {
statementOne();
statementTwo();
}
、{記号はクラスの本体又は方法の開始を示すために使用されていますまた、クラス内で初期化子または静的初期化子ブロックを宣言するために使用することもできます。
リテラル配列の文脈において
は、{シンボルがリテラル内で使用される要素のリストの開始を示すために使用されている:
int[] arr = new int[] {1, 3, 7};
オープンブレースシンボルのこれらの使用は、それぞれ異なっています他のすべて。実際には、これらのさまざまなコンテキストごとに異なるシンボルを使用すると、言語はうまく動作します。
あなたの質問に対する最良の答えは、ブロックステートメント(1つとして扱われる多くのステートメント)、クラス(1つのクラスとして扱われるステートメント) 1つのオブジェクトとして扱われる多くのメソッドとフィールド)、メソッド(単一の統一コードとして扱われる多くのステートメント)、イニシャライザ(多くのことをすぐに行う必要がある)などがあります。
これらの文脈は、コメントが指摘しているように、ブレースは新しいスコープを導入します。ステートメントブロック、クラス本体、初期化子本体、関数本体はすべて新しいスコープを導入しています。それは間違いなく留意すべき重要なものです。 (配列の初期化はこれを行いません)
**司会者のメモ**:私は、この討論を止めるために、この討論を止めるためにこの投稿を閉じました。この派閥は、投稿を閉じる/削除したり、投稿を元に戻したり、繰り返したりして、いずれにしてもこのことが気になる場合は、[Meta]に質問を投稿して、この質問の信念に関するコンセンサスを見つけてください。 –
ここでのメタの議論:http://meta.stackoverflow.com/q/339881 –
私はこれを編集しようとしました。 [新しいメタ・ディスカッションはここにあります](http://meta.stackoverflow.com/questions/340229/can-the-meaning-of-the-curly-brace-in-java-be-expressed-in-a-少ない段落)。 – Shog9