【问题标题】:What does declaration of an object element in a class mean?类中对象元素的声明是什么意思?
【发布时间】:2018-02-03 06:59:46
【问题描述】:

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

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;
  }
}

【问题讨论】:

  • 它不是一个“对象元素”。这是一个参考。
  • 你能在回答中详细解释一下吗?
  • Object element simple 表示名称为 elementObject。可能是Object withAnyNameYouLike

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


【解决方案1】:

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

所以在这种情况下,您可以这样定义您的 ChainNode:

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

注意当我们创建node1 时,我们将node2 作为下一个引用传递。另请注意,如果您不传递 node2 的下一个引用,它将默认为 null。我们现在有了一个基本的链表:

"节点 1" --> "节点 2" --> null

【讨论】:

    【解决方案2】:

    Object 是我们在 java 中定义的所有类的父类。简单来说,声明“对象元素;”类似于“字符串 abc”。

    就像我们将 abc 定义为字符串一样,我们定义了一个 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;
    }
    

    【讨论】:

      猜你喜欢
      • 2011-12-19
      • 1970-01-01
      • 2014-04-23
      • 1970-01-01
      • 2014-08-27
      • 1970-01-01
      • 2010-10-01
      • 2014-09-20
      • 1970-01-01
      相关资源
      最近更新 更多