作者gh8811211 (大熊)
看板java
标题[问题] 物件不用配置记忆体直接可以使用吗?
时间Tue May 14 11:42:49 2013
先贴一下程式码好了
public class LinkedListProblem<E>
{
private Node<E> head, tail;
private int size;
public LinkedListProblem()
{
size = 0;
}
public void addFirst(E e)
{
Node<E> newNode = new Node<E>(e);
newNode.next = head;
head = newNode;
size++;
if (tail == null)
tail = head;
}
public String toString()
{
StringBuilder result = new StringBuilder("[");
Node<E> current = head;
for (int i = 0; i < size; i++)
{
result.append(current.element);
current = current.next;
if (current != null)
{
result.append(", ");
}
else
{
result.append("]");
}
}
return result.toString();
}
private class Node<E>
{
E element;
Node<E> next;
public Node(E element)
{
this.element = element;
}
}
}
撷取课本上的范例
想请问
成员物件 head 在这个程式码并没有被配置记忆体
(new 出实体物件或是有其他记忆体直接assign)
为什麽在addFirst方法中 第二行
可以直接将head物件assign给newNode.next
想来想去实在很奇怪阿~~~~~~~~~(这程式的确可以跑 = =)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.168.78.114
1F:→ qrtt1:你用纸笔,一步一步 trace 试试 05/14 11:47
纸笔?
我想了好久就是不懂为什麽没有记忆体位置的物件可以assign给另一个物件
※ 编辑: gh8811211 来自: 118.168.78.114 (05/14 11:52)
2F:→ elba:可以把head指定给newNode.next不代表head就是一个物件 05/14 11:56
3F:→ elba:head的值有可能参考到配置好的Node<E>,也有可能是null 05/14 11:59
4F:→ elba:看一下课本有没有reference type的解释 05/14 12:14
5F:推 chchwy:head是reference 05/14 12:41
6F:→ realmeat:这不是泛型吗? 跟计忆体配置有啥关系? 05/14 23:00
7F:→ realmeat:看懂你的问题了, head的next是null, 当然可以用 05/14 23:09
8F:→ realmeat: ^^第一次的 05/14 23:11