java中的内部类在双向链表中

时间:2016-02-21 08:46:23

标签: java linked-list

public class DLLNode{
    private int data;
    private DLLNode prev;
    private DLLNode next;
} 

这是private DLLNode prev是什么?

如何在类中定义类?

1 个答案:

答案 0 :(得分:0)

它没有定义一个类,它在类DLLNode类中定义了一个字段。

您提供的代码基本上定义了一个类型为DLLNode的类,其中包含3个私有字段:

  • integer类型的字段,称为data
  • DLLNode类型的字段,称为prev
  • DLLNode类型的字段,称为next

所有这些意味着,一旦创建了DLLNode个对象,它将包含3个值 - 1个整数值和2个地址值,其中保留DLLNode个字段。

这基本上使您能够引用该对象,即使它在同一个"定义"内。即以下代码是合法的:

public class DLLNode{

    private int data;
    private DLLNode prev;
    private DLLNode next;

    public int whatsNext() {
        return next.data; // btw, a null check if always encouraged :)
    }
}

我在whatsNext方法中完成的所有操作都引用了next字段并访问其data字段。基本上,我只是向Java询问了一个地址,其中保存了DLLNode类型的对象(next),然后访问其中一个字段,就好像它是任何其他对象一样。

同样,这里的关键思想是,这是一个简单的字段定义,而不是重新定义类本身。