如何让不同行中的两个类在Java中相互交互?

时间:2015-02-18 22:25:51

标签: java arrays class

我是Java的新手,我正在制作基于文本的冒险游戏。在我的游戏中,有多个房间,每个房间都有一系列物品。我有一个名为"门,"我希望房间A有一扇通往B室的门,反之亦然。但是当我这样做时:

    public room A = new room(new items[] {
new door(B)});
    public room B = new room(new items[] {
new door(A)});

我收到错误消息"Cannot reference a field before it is defined"(我正在使用Eclipse)。

有没有办法让这项工作?

我知道这意味着它无法在课程定义之前告诉班级做某事,但我不知道如何修复它。

2 个答案:

答案 0 :(得分:8)

创建房间后,您需要添加项目。这意味着您需要在addItem中编写room方法。

public room A = new room();
public room B = new room();

{ // this is the start of an "instance initializer"; it runs before any constructors (but after field initializers)
    // if you have a constructor, you could choose to put this in the constructor instead; personal preference
    A.addItem(new door(B));
    B.addItem(new door(A));
}

答案 1 :(得分:0)

在初始化A和B之后,您需要设置A的项目。例如:

public room A = new room();
public room B = new room();
{
    B.setItems(new items[] {A});
    A.setItems(new items[] {B});
}