0

私は今Javaを学んでいますが、これでこれらのエラーを理解できないようです...

public class Input {

    Setter access = new Setter();
//                              ^ Error here: Syntax error on token ";", { expected 
//                                after this token.

    if (commandExc == fly) {
        access.flySetter();
    }
    else if (commandExc == xray) {
        access.xraySetter();
    }
} // < Error here: Syntax error, insert "}" to complete ClassBody

ありがとうございました。

4

5 に答える 5

3

コードはメソッドでラップする必要があり、クラス本体内に直接配置しないでください。

于 2012-12-20T04:30:43.963 に答える
3

そのようなクラスを作成することはできません。内部コードはメソッド内にある必要があります。

このような:

public class Input { // start of class

  public Input() {  // start of constructor
    Setter access = new Setter(); // this could be outside the method

    // commandExc, fly and xray should be initialized somewhere
    if (commandExc == fly) {
        access.flySetter();
    }
    else if (commandExc == xray) {
        access.xraySetter();
    }
  } // end of constructor

} // end of class

コンストラクターは、クラスのインスタンスを初期化するコードを配置する特別な種類のメソッドです。この場合、コードをクラスのコンストラクター内に配置します。ただし、他のメソッド内にある可能性があります。プログラムでより意味のあるものを確認する必要があります。

Java を学習しているので、このリンク、特に「基本をカバーするトレイル」をチェックすることをお勧めします: http://docs.oracle.com/javase/tutorial/

于 2012-12-20T04:30:45.803 に答える
1
public class Input {

    Setter access = new Setter();

    public static void main(String args[]) {   //or any method
        if (commandExc == fly) {
            access.flySetter();
        }
        else if (commandExc == xray) {
            access.xraySetter();
        }
    }
} 
于 2012-12-20T04:33:21.400 に答える
0

コードをメソッドでラップする必要があります。以下のように:

public class Input {

  Setter access = new Setter();

  public static void main(String args[]){   //or any method
      if (commandExc == fly) {
          access.flySetter();
      }
      else if (commandExc == xray) {
          access.xraySetter();
      }
  }

} 
于 2012-12-20T05:16:42.127 に答える
0

メソッド内で作業していないようです。mainのメソッドにコードを入れてみてくださいInput。例えば:

public class Input {
  public static void main(String[] args) {
    Setter access = new Setter();

    if (commandExc == fly) {
        access.flySetter();
    }
    else if (commandExc == xray) {
        access.xraySetter();
    }
  }
}

これがオブジェクトであることが意図されていた場合は、の初期化部分をaccessコンストラクター メソッドに配置します。if/の場所はelse、目的の実装によって異なります。

于 2012-12-20T04:33:32.560 に答える