为什么在 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 节点。
我是 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 节点。