在Java中创建类型为class的变量

时间:2019-05-11 15:00:42

标签: java

在代码中,节点类为Node next。我不明白它到底在做什么。是否正在创建一个名为next的对象。当使用nodeA.next = nodeB时,是否有存储的值。 我正在尝试学习LinkedList,但我无法确切了解发生了什么。

  class Node{
     int data ;
     Node next;
     Node(int data){
        this.data = data ;
     }
  }

  Node nodeA = new Node(6);
  Node nodeB = new Node(3);
  Node nodeC = new Node(2);


 nodeA.next = nodeB;
 nodeB.next = nodeC;

1 个答案:

答案 0 :(得分:4)

让我们分解代码并解释各部分:

class Node {
}

这是创建新类的语法。该类名为“节点”。

int data;

这定义了一个实例变量。每个Node类型的实例都应具有一个名为int类型的数据的变量。

Node next;

这定义了另一个实例变量。接下来称为它,它包含对Node的引用。

 Node(int data){
    this.data = data ;
 }

这是所谓的构造函数。它接受一个参数数据,然后将其存储在实例变量数据中。 (实例变量用“ this。”引用,因为参数数据隐藏了具有相同名称的实例变量。)

那是班级本身。因此,现在我们来看一下它的用法(在类/函数外部没有意义。此类代码应成为函数的一部分,例如在主函数内部):

Node nodeA = new Node(6);
Node nodeB = new Node(3);
Node nodeC = new Node(2);

这将创建3个类节点的实例,并将其存储在nodeA,nodeB和nodeC变量中。

nodeA.next = nodeB;
nodeB.next = nodeC;

在这里,我们设置nodeA和nodeB的下一个实例变量,并分配nodeB和nodeC。

这给了我们一个所谓的链表。列表中的一个元素可以指向另一个元素(或者当其中没有元素引用时,默认情况下为null。

这有助于理解代码吗?如果不是:您到底在哪里理解代码有困难?