首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在另一个类中使用来自一个类的实例: Greenfoot

如何在另一个类中使用来自一个类的实例: Greenfoot
EN

Stack Overflow用户
提问于 2014-05-15 00:22:42
回答 1查看 883关注 0票数 1

我现在正在使用Greenfoot,学习Java。当涉及到静态/非静态的时候,我是非常幼稚的,而且我对实例也很不确定。

在格林弗特,我有一个世界级的,让我们称之为世界。现在我有了另一个类,名为Car,还有一个子类,Redcar。最后,我有一个Button类。

如果您熟悉Greenfoot,我已经创建了一个Redcar实例,名为redcar (只是小写),并通过addObject()将其添加到World;

代码语言:javascript
复制
public World() { 

    super(1000, 200, 1); 

    Redcar redcar = new Redcar();
    Button button = new Button();

    addObject(redcar, 45, 45);
    addObject(button, 960, 175);
}

在Car类中,其中包含以下内容

代码语言:javascript
复制
public class Car extends Actor {

    int carSpeed = 0;

    public void drive() {
        carSpeed++;
        move(carSpeed);
    }
}

如果从Redcar调用,它将在每次调用驱动器时进一步移动Redcar。但是,我希望在按钮被点击时发生这种情况。在我的世界级课程中,我想设置一些这样的东西:

代码语言:javascript
复制
if (Greenfoot.mouseClicked(button)) {
    redcar.drive();
}

但是,如果将它放在World构造函数中,那么在运行Greenfoot项目时它就不会运行。我试着把它放在一个while循环中,这样它就可以不断地查找鼠标点击,但这不起作用,实际上它会崩溃Greenfoot。

如果这个问题措辞混乱,我很抱歉,如果需要的话,我会把它处理好的。基本上,我的问题是这个。如何从不同的类调用类的方法来处理实例?例如,驱动()方法处理按钮类中的redcar (实例)

EN

回答 1

Stack Overflow用户

发布于 2014-05-15 00:31:43

好吧,如果我理解你的问题,你需要给出实例的可见性,

代码语言:javascript
复制
private Redcar redcar;                   // <-- if you want to access redcar in World.
public World() { 
  super(1000, 200, 1); 
  redcar = new Redcar();                    // <-- Use the redcar field
  Button button = new Button(this, redcar); // <-- if you want to access this World  
                                            // instance and redcar in Button.
  addObject(redcar, 45, 45);
  addObject(button, 960, 175);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23667301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档