作者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
→ qrtt1:你用紙筆,一步一步 trace 試試 05/14 11:47
紙筆?
我想了好久就是不懂為什麼沒有記憶體位置的物件可以assign給另一個物件
※ 編輯: gh8811211 來自: 118.168.78.114 (05/14 11:52)
→ elba:可以把head指定給newNode.next不代表head就是一個物件 05/14 11:56
→ elba:head的值有可能參考到配置好的Node<E>,也有可能是null 05/14 11:59
→ elba:看一下課本有沒有reference type的解釋 05/14 12:14
推 chchwy:head是reference 05/14 12:41
→ realmeat:這不是泛型嗎? 跟計憶體配置有啥關係? 05/14 23:00
→ realmeat:看懂你的問題了, head的next是null, 當然可以用 05/14 23:09
→ realmeat: ^^第一次的 05/14 23:11