如何将类名用作数据类型?

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。并且该字段包含对对象引用而不是对象本身。

(术语中的这些小区别对于理解真正发生的事情实际上很重要。)


以上是如何将类名用作数据类型?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>