[英]Calling methods on an object instantiated in a previous method (Java)
简单来说,我有以下代码:
public void dance()
{
CartoonFigure dancer = new CartoonFigure("rico", 300, 300);
danceStepTwo();
danceStepOne();
}
public void danceStepOne()
{
dancer.turnLeft();
}
public void danceStepTwo()
{
dancer.turnLeft();
}
但是在舞者对象上调用这些方法会给我一个编译错误“找不到符号-变量舞者”。 如何解决此问题,以便可以从danceStepOne()调用舞者对象的方法?
将舞者定义为实例变量,以便它对两种方法均可用。 否则将其实例传递给这两种方法。
将dancer
声明为字段变量。 将其(在顶部)与范围声明一起放在任何方法之外,例如, private CartoonFigure dancer
。
您将必须使dancer
全局对象,并且此错误是由于以下事实导致的:仅对dance()
方法可见,使它成为实例字段,如下所示。
private CartoonFigure dancer;
可以在构造函数中进行如下初始化
dancer = new CartoonFigure("rico", 300, 300);
由于“ danceStepOne”和“ danceStepTwo”无法使用“跳舞者”对象,因此无法识别并且将导致编译失败。
为此,任何解决方案都可以使用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.