因此,您有一个名为Node的类,其中包含两个名为next和data的实例变量。它们被称为实例变量,因为它们属于这个类的实例,而不属于类本身。也就是说,你的类基本上是一个对象的模板(或蓝图),每个对象将拥有自己的数据值和下一个值。
为了创建一个Node类的实例,您需要调用构造函数并传递必要的参数。在你的情况下,构造函数是;
public Node(int d) {
data = d;
}
要调用此构造函数,请使用new关键字(在Java中,我假设)像这样;
Node x = new Node(10);
并注意到您必须为构造函数提供一个整数值。在构造函数的主体中({}之间),您会看到变量数据被分配给d中的值,该值是您传递给构造函数的值,在本例中为值10.您现在有一个类型的对象值为10的节点是数据,下一个节点是空值。
在该对象上,您现在可以调用方法appendToTail()。可以说我们这样做:
x.appendToTail(20);
让我们跟踪发生了什么。创建
Node end = new Node(d);
命名结束一个新节点,我们设定的值20的数据(记住,d的值是20,现在,因为这是我们当我们调用方法传递的值)。这是一个完全独立于x的节点,具有自己独特的数据值。
Node n = this;
这是一个自参考当前对象。既然我们在x上调用了这个方法,那么这个对象就和x一样。
while (n.next != null) {
n = n.next;
}
这个while循环将开始寻找名单从当前节点要到下一个节点,直至下一个节点是空的结束。由于我们迄今为止创建的唯一节点是x,因此n.next实际上是null,所以while循环不会执行这一次。
n.next = end;
现在我们将n(它是x)的下一个值设置为创建的节点端。现在,您有这样的名单:
10 -> 20 -> null
假如你做以下电话:
x.appendToTail(30);
然后类似的事情发生,当你到了while循环值n.next是除不是null,所以你进入循环的主体,并指定n指向n.next,在我们的例子中是20节点。循环的下一个迭代将产生null,因此循环将退出,新节点将与数据30将被设置为列表中最后一个节点的下一个值。所以你将有:
10 -> 20 -> 30 -> null
这是什么语言? – 2011-05-04 01:02:36