为什么在 class 中使用 class 作为变量成员

Why using a class as a variable member inside that said class

我是 Java 的新手,一直在研究它。所以我很难理解这些是什么以及 Java 如何处理它们,以及为什么我们要这样声明这些变量。我的意思是你能教我这方面的知识吗?

Public abstract class ListItem {
    protected Listitem leftLink = null;
    protected Listitem rightLink = null;
    protected Object value;

    some code here
}

提前致谢!

为什么要声明一个 Class 字段,它具有 ClassName 作为变量类型而不是 int、string...?

因为开发者需要。有时,class 的一个实例必须引用同一个 class 的另一个实例。一个典型的例子是LinkedList。

将链表视为节点序列。每个节点都知道下一个要链接的节点。这是一个节点的简单实现:

class Node<T> {
    private Node<T> next;
    private T value;

    Node(T value) {
        this.value = value;
    }

    public T getValue() {
        return value;
    }

    void setNext(Node<T> next) {
        this.next = next;
    }
}

如你所见,classNode包含一个Node类型的变量成员,用来引用链表的下一个元素。最后,链表的一个简单实现是:

class LinkedList<T> {

    private Node<T> first;
    private Node<T> last;
    private int length = 0;

    public void add(T value) {
        Node<T> node = new Node<T>(value);

        if(length != 0) {
            last.setNext(node);
            last = node;
        }
        else {
            first = node;
            last = node;
        }

        length++;
    }

    public Node<T> getFirst() {
        return first;
    }
}

当一个新节点被添加到集合中时,前一个 last 节点引用它,因此成为 new last 节点。