Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我们如何才能创造一个;节点";在节点类中键入fild?_Java - Fatal编程技术网

Java 我们如何才能创造一个;节点";在节点类中键入fild?

Java 我们如何才能创造一个;节点";在节点类中键入fild?,java,Java,堆栈实现。 如何在节点类中创建“节点”类型的fild?? 类型为“Node”的变量“first”如何包含类型为“Node”的fild? 谢谢你的帮助 public class Stack { private Node first = null; private class Node { String item; Node next; } public boolean isEmpty() { return first == null; } public void p

堆栈实现。 如何在节点类中创建“节点”类型的fild?? 类型为“Node”的变量“first”如何包含类型为“Node”的fild? 谢谢你的帮助

public class Stack 
{
private Node first = null;

private class Node
{
    String item;
    Node next;
}

public boolean isEmpty()
{
    return first == null;
}

public void push(String item)
{
    Node oldFirst = first;
    first = new Node();
    first.item = item;
    first.next = oldFirst;  
}

public String pop()
{
    String item = first.item;
    first = first.next;
    return item;
}

}Java通过引用(或指针)处理对象


给定此类的一个实例,其主体需要8字节内存(在32位机器上)。第一个4字节存储指向字符串的指针,下一个4字节指向另一个
节点
对象(或null)。

节点
是一个递归数据结构。假设你有一张清单。列表可以为空,也可以包含第一个元素和一个rest,其中rest也是一个列表


堆栈
类中,您持有第一个
节点
实例的引用。第一个实例由一个字符串值和对下一个
节点的引用组成。首先,不容易理解一个类可以有同一个类的字段。但这是一个基本原则。也就是说,你有一个班上的人。一个人实例可以与其他人实例关联。就像父亲一样。然后,您自然会在类Person中包含一个字段
父亲
。父亲的类型是人。这不是魔法。这是建模类实例之间关联的唯一方法。这里唯一特别的是,这些是同一个类之间的关联,而不是两个不同的类之间的关联。

完全不清楚您为什么认为这不起作用。我怀疑您应该将
节点
设置为静态嵌套类……我不理解这个问题。如何-你有代码,对吗?代码是有效的,但我不明白你问为什么一个类可以有一个与类相同类型的属性?为什么这会是个问题?
class Node {
     String value;
     Node next;
}