繁体   English   中英

在先前方法(Java)中实例化的对象上的调用方法

[英]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”无法使用“跳舞者”对象,因此无法识别并且将导致编译失败。

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

  1. 将其作为变量传递给方法
  2. 将“ dancer”声明为全局变量

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM