请问,这是JAVA的什么机制??

zh_1666 2004-09-23 09:32:29
package TEST_Java;

import java.io.*;
public class Test
{
public static void main(String[] args)
{

CFolder aa=new CFolder(null,"father");
CFolder bb=new CFolder(aa,"son");
System.out.println(bb.FolderName);
System.out.println(bb.parent.FolderName);
}
}
class CFolder
{
public String FolderName;
public CFolder parent);/*问题所在=========*/

public CFolder(){}
public CFolder(CFolder MyParent,String name)
{
parent=MyParent;
FolderName=name;
}
}

为什么可以的类体里思可以用该类定义一个成员,类的嵌套吗?好戏没听过,高手请指点!!
...全文
287 9 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
diaopeng 2004-10-04
  • 打赏
  • 举报
回复
就是对象成员而已,跟一般的成员定义没有什么不同,有什么问题吗?记住类的成员可以是对象,当然也包括该类的对象
sbojuqqk 2004-09-30
  • 打赏
  • 举报
回复
good!
agen10120216 2004-09-30
  • 打赏
  • 举报
回复
mark
zh_1666 2004-09-24
  • 打赏
  • 举报
回复
to :zkjbeyond(jigi)
如果需要这样(嵌套),有无其他实现方法?
zkjbeyond 2004-09-24
  • 打赏
  • 举报
回复
java里面对象的建立过程。
1、在堆中分配内存
2、类型变量,类型构造函数 (在堆中)
3、实例变量,实例构造函数 (在堆中)

4、得到的只是对象的一个引用,指向堆中的地址。
调用者可不管你在堆中是怎么保存的,你的类型是什么,(包括自己)

我觉得这是运行时异常的一个根源。

public String FolderName;
public CFolder parent);/*在你构造对象时,我开辟个保存个 句柄(指针)的内存,类型先不管。*/

public CFolder(){}
public CFolder(CFolder MyParent,String name)
{
parent=MyParent;
FolderName=name;
}
yangjuanli 2004-09-24
  • 打赏
  • 举报
回复
我想应该相当于一个类的构造方法里可以有其类的对象。
或者说一个类里其类的一个对象可以作为这个类的一个变量,给其赋值。:)
EQsay 2004-09-24
  • 打赏
  • 举报
回复
自引用类
chn217 2004-09-24
  • 打赏
  • 举报
回复
这是递归定义。和C/C++里面的递归定义是一样的。
e.g:

typedef struct BinNode {
int data;
struct BinNode *left;
struct BinNode *right;
}
为什么可以?这个得从类的构造机制上讲起。
kingfish 2004-09-23
  • 打赏
  • 举报
回复
只是一个的引用(类型与自己同,不是什么嵌套)。可以形成类似链表

不是什么机制,class都支持,如c++
class A{
A *a;
};
发帖
Java

4.9w+

社区成员

Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
帖子事件
创建了帖子
2004-09-23 09:32
社区公告
暂无公告