黑马程序员技术交流社区

标题: 对象的参数可以接受另一个对象??? [打印本页]

作者: 悟佛修道    时间: 2013-5-20 23:09
标题: 对象的参数可以接受另一个对象???
本帖最后由 悟佛修道 于 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

作者: 刘勇强    时间: 2013-5-20 23:36
本帖最后由 刘勇强 于 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.. 那句同理。

类也是数据类型的一种,类的对象当然可以作为初始化对象时用到的参数

作者: 黑马-许鹏    时间: 2013-5-21 00:25
是这样的,为了保证输入和输出用的是一个资源。所以在Output类中就定义了一个私有化的Res类型的成员变量,但是用了一个参数类型是Res的构造函数来获得该Res类型的成员变量的值,同理在Input类中也是同样的配置。
在主函数中就新建了一个具体的Res类的对象,通过实际参数的形式传给了Input类和Output类的对象in和out,这样就保证了in和out这两个对象操作的是同一个资源。我说的很详细,你应该能明白了吧?不明白的话继续问
作者: 悟佛修道    时间: 2013-5-21 08:29
l意思是 r  是in out的一个成员变量?对in out  初始化后,他们的成员变量 r  的值就相当于是res的一个对象?所以可以直接r.name 修改共享资源res里面的名字?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2