【发布时间】:2013-04-08 19:25:23
【问题描述】:
我正在编写一个在整个地图中执行星搜索的程序。我创建了一个包含地图所有节点的类。
public Node {
Node up_node, right_node, down_node, left_node;
}
public class Star {
public static void main(String args[]) {
Node a=new Node();
Node b=new Node();
Node h=new Node();
Node here=new Node();
Node[] NextNode;
NextNode = new Node[10];
for(int i=0;i<10;i++) {
NextNode[i]=new Node();
}
int j=0;
a.up_node=h;
a.right_node=b;
b.left_node=a;
h.down_node=a;
//if certain conditions are met
NextNode[j].here_node=a.up_node;
//what i was hoping to do is copy the node a.up which is h
}
}
在这种情况下进入 NextNode[0]。但是它不断返回某种内存地址:test.Node@10b28f30: test 是包的名称,请帮忙!
【问题讨论】:
-
返回哪里?如果您尝试 system.out.println Node 对象,除非您覆盖类节点的 toString 方法,否则您肯定会以 Node@XXXX 结束。
-
除了其他节点的引用之外,每个节点中将包含哪些
value?如果你有那个value,那么在toString()方法中返回那个value的String格式。这将解决您的问题 -
“它不断返回”非常模糊。根本不清楚你在哪里看到它,但几乎可以肯定这是在
Node上调用toString()的结果 - 而且你还没有覆盖该方法...... -
引用:"NextNode[j].here_node=a.up_node;" Node 类上不存在 here_node?span>
标签: java arrays class initialization