如何将类名用作数据类型?
public class node {
int data;
node next;
node(int data){
this.data = data;
}
}
这是我在网上看到的一个链接列表的类。我不确定它接下来如何使用节点。
例如, intdata正在创建类型为 的变量数据int。但是然后node next是创建一个名为 next 的变量,类型为 node 吗?但我认为没有节点这样的类型。
有人可以向我解释一下吗?
感谢您的时间。
回答
如果我们使用正确的样式,这会更清楚一点:
public class Node {
int data;
Node next;
Node (int data) {
this.data = data;
}
}
Node是一个类。每个Node实例都有一个字段 ( data) 来保存整数值,以及一个字段 ( next) 来保存对另一个Node实例的引用。
(如注释中所述,所有 Java 类都是类型,因此Node next;声明名称为next且类型为的字段也是如此Node。此外,每个Node实例都将具有这些字段之一......可以引用另一个Node实例。)
因此,要从Node实例创建链接列表,您Node可以使用(自然地)next字段将列表中的一个链接到下一个。Node列表中的最后一个(通常)null在其next字段中有一个。
但我认为没有节点这样的类型。
每个 Java 类都是一个类型,我们只是将node(或更准确地说Node)定义为一个 Java 类。
因此,它只是创建了一个名为
next. 我对吗?
不完全是。您将创建一个对象(一个Node实例)并将该对象的引用分配给next某个其他Node实例的字段。
对象未被调用next。该字段称为next。并且该字段包含对对象的引用而不是对象本身。
(术语中的这些小区别对于理解真正发生的事情实际上很重要。)