作者dharma (達)
看板java
標題[語法] 內部類別的句子
時間Mon Apr 10 16:19:01 2017
林信良Java書上看到的範例
不太懂「Node next;」為什麼可以出現在那個位置
thanks
public class SimpleLinkedList {
private class Node {
Node(Object o) {
this.o = o;
}
Object o;
Node next;
}
...(省略)
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.65.89.53
※ 文章網址: https://webptt.com/m.aspx?n=bbs/java/M.1491812343.A.57E.html
1F:→ ssccg: 不就field? 跟上一行的Object o;一樣啊 04/10 17:10
2F:→ ssccg: class Node有個field叫next、type為Node(的reference) 04/10 17:14
3F:推 kyleJ: 可能是不懂為什麼class裡面可以宣告跟自己一樣的型別? 04/10 19:16
對 我的疑問在此
4F:→ kyleJ: 如果是的話,Java沒有限制不行將自己本身當作field喔。而 04/10 19:18
5F:→ kyleJ: 且還很常見(如單例和靜態工廠之類的寫法) 04/10 19:18
6F:→ ssccg: 應該說是因為reference type變數就只是reference(pointer) 04/10 20:47
7F:→ ssccg: 如果像某些語言的struct那很自然不能在自己裡面放一個自己 04/10 20:48
8F:推 gmoz: 這個自己可能是別人阿 04/11 11:19
9F:→ gmoz: 應該是K大說的那樣吧 04/11 11:20
10F:→ ssccg: 看不懂自己可能是別人是什麼意思... 04/11 13:08
11F:→ ssccg: 另外也看不懂跟singleton關係在哪,那通常是static field 04/11 13:10
12F:→ ssccg: 跟這個是每個instance都會有個同type的field不一樣 04/11 13:11
13F:→ ssccg: 看懂了大概是說: 自己(reference)可能是別人(instance) 04/11 20:32
14F:→ ssccg: 但是根本原理還是那個自己(reference)就不是自己(instance) 04/11 20:32
15F:→ ssccg: instance中不可能有同type的instance,會變無窮遞迴定義 04/11 20:36
16F:→ ssccg: 但是reference就沒差 04/11 20:40
※ 編輯: dharma (210.65.89.53), 04/11/2017 22:50:59
17F:→ adrianshum: 就算那reference 是自己又如何?重點不在這吧 04/12 09:05
18F:推 LPH66: 如果你是熟悉 C++ 的人, 把這種物件參考都當成指標就行了 04/16 10:24
19F:推 gmoz: 我是說原PO不懂的點 04/16 22:24