类中对象元素的声明是什么意思?

时间:2018-02-03 06:59:46

标签: java linked-list abstract abstract-data-type

就我所研究的而言,我们使用类的构造函数创建了一个类的实例。

ClassName obj=new ClassName(parameters);

但是我遇到了一个尝试使用以下类ChainNode

在Java中描述链接列表的程序
class ChainNode
{
  Object element; //What does this mean?
  ChainNode nxt;
  ChainNode(Object element)
  {
   this.element=element;
  }
  ChainNode(Object elem, ChainNode nxt)
  {
   this.element=elem;
   this.next=nxt;
  }
}

2 个答案:

答案 0 :(得分:0)

您的第一个陈述是正确的,也适用于ChainNode类。您在ChainNode类定义中看到ChainNode 成员变量的原因是LinkedList结构:列表中的 ith 项指向(i + 1)项目。类中的ChainNode只是说每个ChainNode对象引用另一个ChainNode对象。

因此,在这种情况下,您可以像这样定义您的ChainNodes:

ChainNode node2 = new ChainNode("Item 2");
ChainNode node1 = new ChainNode("Item 1", node2);

请注意我们何时制作node1,我们将node2作为下一个参考传递。另请注意,如果您未传递node2的下一个引用,则默认为null。我们现在有一个基本的链表:

"节点1" - > "节点2" - >空

答案 1 :(得分:0)

Object是我们在java中定义的所有类的父类。简单来说,语句"对象元素;"类似于" String abc"。

就像我们将abc定义为String一样,我们定义了一个Object类型的元素。由于Object(带有大写字母O)是Java中所有其他类的超类,因此任何类的对象和任何其他对象都可以分配给元素。

例如:

   Object element;
   element = studentObject;
   element = ArrayListObject;

因此,在您的示例中,您必须通过传递任何其他类的对象来调用子类中的ChainNode构造函数,可能类似于'节点'在实现链表时要上课。

Object element; //What does this mean?
ChainNode nxt;
ChainNode(Object element)
{
    this.element=element;
}