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

将 dancer 定义为实例变量,以便它对这两种方法都可用。否则将其实例传递给这两种方法。

于 2013-03-26T10:12:20.517 回答
0

由于“danceStepOne”和“danceStepTwo”没有“dancer”对象,无法识别,编译失败。

为此,任何解决方案都可以

  1. 将其作为变量传递给方法
  2. 将“dancer”声明为全局变量
于 2013-03-26T10:17:12.533 回答
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 回答