0

クラスブロックで:

次のようにオブジェクト (この場合は単純な文字列) を作成する代わりに:

public String one = "Hello!";

私はこのようにしたかった:

String one;
one = "Hello!";

しかし、コンパイラはスローします:

error: <identifier> expected

なんで?2番目がメソッド内にある必要があるのはなぜですか?

4

3 に答える 3

2

これはある種のコンストラクターにあるように見えます... いずれにせよ、メソッドまたはコンストラクター (または他のコード ブロック) 内に配置する必要があります。これは、Java 構文の規則の 1 つにすぎません。

public String one;

public MyClass() {
    one = "hello";
}

フィールドを作成した場合、次のstaticことができます

public static String one;

static {
    one = "hello";
}
于 2012-11-15T21:25:37.917 に答える
1

その可能性が高い

one = "Hello!"

クラスブロックにあります。このステートメントは、コード ブロック内に表示する必要があります。つまり、; メソッド、コンストラクター、または静的初期化子。例えば:

void myMethod() {
    String one;
    one = "Hello!";
}

非宣言ステートメントは、クラス ブロックに表示できません。

于 2012-11-15T21:24:08.573 に答える
1

行はone = "Hello!";メソッド内にある必要があります。

于 2012-11-15T21:24:10.013 に答える