作者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/cn.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