public class DLLNode{
private int data;
private DLLNode prev;
private DLLNode next;
}
这是private DLLNode prev
是什么?
如何在类中定义类?
答案 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
),然后访问其中一个字段,就好像它是任何其他对象一样。
同样,这里的关键思想是,这是一个简单的字段定义,而不是重新定义类本身。