クラスブロックで:
次のようにオブジェクト (この場合は単純な文字列) を作成する代わりに:
public String one = "Hello!";
私はこのようにしたかった:
String one;
one = "Hello!";
しかし、コンパイラはスローします:
error: <identifier> expected
なんで?2番目がメソッド内にある必要があるのはなぜですか?
これはある種のコンストラクターにあるように見えます... いずれにせよ、メソッドまたはコンストラクター (または他のコード ブロック) 内に配置する必要があります。これは、Java 構文の規則の 1 つにすぎません。
public String one;
public MyClass() {
one = "hello";
}
フィールドを作成した場合、次のstatic
ことができます
public static String one;
static {
one = "hello";
}
その可能性が高い
one = "Hello!"
クラスブロックにあります。このステートメントは、コード ブロック内に表示する必要があります。つまり、; メソッド、コンストラクター、または静的初期化子。例えば:
void myMethod() {
String one;
one = "Hello!";
}
非宣言ステートメントは、クラス ブロックに表示できません。
行はone = "Hello!";
メソッド内にある必要があります。