【发布时间】:2015-04-20 03:15:24
【问题描述】:
我是 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)。
有没有办法让这个工作?
我知道这意味着它不能告诉一个类在定义该类之前做某事,但我不知道如何修复它。
【问题讨论】:
-
类不是按顺序“定义”的——你可以在任何地方访问任何类。此外,类不做事——对象做。此外,错误消息显示字段,而不是类。
-
如果您需要两个对象相互引用,您不能在它们的构造函数中这样做。您需要创建对象,然后告诉它们彼此。您尝试这样做的方式,其中之一永远不会被创建。