0

簡単に言うと、次のコードがあります。

public void dance()
{
CartoonFigure dancer = new CartoonFigure("rico", 300, 300);
danceStepTwo();
danceStepOne();
}

public void danceStepOne()
{
    dancer.turnLeft();
}

public void danceStepTwo()
{
   dancer.turnLeft();
}

しかし、ダンサーオブジェクトでこれらのメソッドを呼び出すと、コンパイルエラーが発生します'シンボルが見つかりません-変数ダンサー'。これを修正して、danceStepOne()からダンサーオブジェクトのメソッドを呼び出すにはどうすればよいですか?

4

4 に答える 4

3

ダンサーをインスタンス変数として定義して、両方のメソッドで使用できるようにします。それ以外の場合は、そのインスタンスを両方のメソッドに渡します。

于 2013-03-26T10:12:20.517 に答える
0

dancerフィールド変数として宣言します。スコープ宣言とともに、メソッドの外側に(上に)配置しprivate CartoonFigure dancerます。

于 2013-03-26T10:12:08.340 に答える
0

グローバルにする必要がありdancerますが、このエラーはメソッドdance()にのみ表示されるため、次のようにインスタンスフィールドにします。

private CartoonFigure dancer;

初期化は、コンストラクターで次のように実行できます。

dancer = new CartoonFigure("rico", 300, 300);
于 2013-03-26T10:12:31.803 に答える
0

「dancer」オブジェクトは「danceStepOne」と「danceStepTwo」では使用できないため、認識できず、コンパイルに失敗します。

このため、どのソリューションでも機能します

  1. それを変数としてメソッドに渡します
  2. 「ダンサー」をグローバル変数として宣言する
于 2013-03-26T10:17:12.533 に答える