A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 悟佛修道 于 2013-5-27 08:20 编辑

毕老师在讲解 线程间的通信时,定义了资源对象 r  ,输入对象in ,输出对象out,然后把对象r作为参数传入了对象in 和 out 的构造函数中。这个怎么理解啊?对象in和out
被对象r初始化???对象被对象初始化?什么意思啊?in和out 这两个对象都变成对象r了???是这样吗???求解,谢谢!!!

QQ截图20130520230251.png (62.84 KB, 下载次数: 0)

QQ截图20130520230251.png

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

3 个回复

倒序浏览
本帖最后由 刘勇强 于 2013-5-21 00:01 编辑

最好贴出完整的代码

in 是类Inout的对象   out是 Output的对象 r是类Res的对象 ,in和out 这两个对象怎么会变成对象r


看不到Input的定义,但能看到Output的定义

Output out= new Output(r);  这句明显是把 Res类型的r 作为参数用作初始化对象out. 上面Input in.. 那句同理。

类也是数据类型的一种,类的对象当然可以作为初始化对象时用到的参数
回复 使用道具 举报
是这样的,为了保证输入和输出用的是一个资源。所以在Output类中就定义了一个私有化的Res类型的成员变量,但是用了一个参数类型是Res的构造函数来获得该Res类型的成员变量的值,同理在Input类中也是同样的配置。
在主函数中就新建了一个具体的Res类的对象,通过实际参数的形式传给了Input类和Output类的对象in和out,这样就保证了in和out这两个对象操作的是同一个资源。我说的很详细,你应该能明白了吧?不明白的话继续问
回复 使用道具 举报
l意思是 r  是in out的一个成员变量?对in out  初始化后,他们的成员变量 r  的值就相当于是res的一个对象?所以可以直接r.name 修改共享资源res里面的名字?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马