gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 00:51:50 25 4
gpt4 key购买 nike

public class node {

int data;
node next;

node(int data){
this.data = data;
}
}
这是我在网上看到的一个链接列表的类。
我不确定它接下来如何使用节点。
例如, int data 正在创建类型为 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

But I thought there is no such type as a node.


每个 Java 类都是一个类型,我们只是将 node (或更准确地说 Node )定义为 Java 类。

So, it is just creating a new object called next. Am I right?


不完全是。您将创建一个对象(一个 Node 实例)并将该对象的引用分配给某个其他 next 实例的 Node 字段。
该对象不称为 next 。该字段称为 next 。并且该字段包含对对象的引用而不是对象本身。
(术语中的这些小区别对于理解真正发生的事情实际上很重要。)

关于java - 如何将类名用作数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65694918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com