5-1章节共享Queue类问题,请老师解答

5-1章节共享Queue类问题,请老师解答

http://img1.sycdn.imooc.com//climg/5cb54c0a000107af12730386.jpg

两个类中第四行代码 Queue queue这样的写法与 Queue queue=new Queue()有什么区别;老师写的这种定义方法就可以实现 生产者类与消费者类,访问的是同一个Queue类的对象么?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,在主方法中定义的Queue对象当做参数传值时,属于引用类型传值,在方法内会改变参数的值。所以当生产者对queue对象的操作会影响消费者中的queue对象。如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 懒人13 提问者 #1
    懂得了,谢谢老师。经上级实验,发现了生产者与消费者中的queue指向同一个内存地址。
    2019-04-16 21:01:59
吃吃吃鱼的猫 2019-04-16 14:17:25

同学你好,1.两者的区别在于第四行是先定义了一个Queue类型的变量queue,在生产者的有参构造方法中为对象赋值,而Queue queue=new Queue();这句话完成了定义,赋值两个操作。http://img1.sycdn.imooc.com//climg/5cb572830001b31206230136.jpg2.这种写法,传入生产者,消费者的Queue对象是同一个对象,所以二者访问的是同一个对象。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 懒人13 #1
    我明白传入生产者和消费者构造函数参数的queue对象是同一个,但这个queue也只是完成了对两个类中各自queue对象的赋初值操作。 生产者对本类queue的操作,也只是影响了本类queue对象中变量n的值。消费者获取的也只是本类中的queue对象中变量n的值。难道说当他们被同一个queue对象初始化后实质上就是同一个queue对象?
    2019-04-16 19:48:04
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师