日期:2014-05-20  浏览次数:20697 次

请教一个对象的问题?
class   Node{
Object   element;
Node   next;
}
不明白上面的定义是什么意思?一个类的成员变量,又定义成自身的对象。
希能详细解释一下,不明白!!!!

------解决方案--------------------
这是个链表的节点嘛,第一个是一个值,第二个是指向下一个节点的指针(java里面应该说是引用)
总之就是
Head-> Node1-> Node2-> .....Nodet
最后一个节点的next是null(顺序链表)
------解决方案--------------------
就是说这个类Node有两个数据成员,一个叫做element,类型为Object,另一个叫做next,类型为Node。
这是典型的定义链接结点的方式,element存储这个结点的数据,next可以理解为指向这个结点的下一个结点的指针。
------解决方案--------------------
楼主大概不知道链表是什么。
------解决方案--------------------
不是啊,我就是正在学习链表啊。大家没明白我说的是什么意思。感觉那样定义成员变量很奇怪,说真的我有点明白,但还是有点不明白。不是不明白链表,我是那样定义不明白。

------解决方案--------------------
队,就是链表,next是指向下一个节点的引用,和c里面的struct差不多!!
------解决方案--------------------
呵呵
好多人给你解释了
不用我再废话了
加油~
------解决方案--------------------
呵呵!学习中!
------解决方案--------------------
在Java 中应该分清楚 引用和对象的区别:
class Node{
Object element;
Node next;
}

Object element 相信楼主已经比较理解,说一下 Node next,
其实楼主应该先注意这个语句,在链表类的方法中
Node next = new Node();
说一下对象的生成,Node next = new Node();

的执行过程是:java虚拟机先在内存的堆空间里new出Node()类型
的对象,再在方法栈空间里申明一个Node类型的引用,名字是next,
最后把 new 出的对象的地址值赋予next(注意等号的运算顺序是从右
到左,所以先new),从而next指向了新new出对象的地址值。

我们再来看 Node next;

从前面的分析,我们可以知道,next 是一个引用类型,而不是Node对象!
Node next; 声明仅仅说明,next存储的是Node类型对象的地址!(在链表
中next指出了下一个Node(节点)到底在哪,这正是链表实现的基础。)

------解决方案--------------------
class Node{
Object element;
Node next;
}

Object是所有类的基类!
而,next 是 Node类的一个实例字段!!
------解决方案--------------------
简单的问题总是有太多的人回答,一个人把他说明白不就行了,不要再重复了......