java中,把一个对象传入另一个对象的构造函数中,随后的操作是什么实现的?

java中,把一个对象传入另一个对象的构造函数中,随后的操作是什么实现的?比如说,AimplementsRunnableAa=newA();Threadd=newThre... java中,把一个对象传入另一个对象的构造函数中,随后的操作是什么实现的?比如说,

A implements Runnable

A a =new A();

Thread d=new Thread(a);

为什么d.start();可以调用A中的run方法?

还有d是否能调用A中任何属性?
展开
 我来答
hermasx
2018-06-30 · TA获得超过333个赞
知道小有建树答主
回答量:411
采纳率:100%
帮助的人:231万
展开全部
第一个问题,传进构造函数的 a 对象会作为外面 d 对象的一个成员变量,d 当中的 start 里面调用了 this.a.run()。当然你用 Thread 这个例子更复杂一些,通过加入线程组来执行 run() 方法的。
第二个问题,分情况,如果是 public 的属性就可以访问到,如果不是,就看这些属性的可见性修饰符是什么以及 A 类所在的位置,比如是不是 d 的内部类、是否在同包等。当然你用 Thread 这个例子更简单些,因为 Thread 基本上不会调你的其他属性。
追问
问一下,一般情况下,d对象是不是要private一个a对象的引用型变量,然后把a对象的地址
赋过去,随后才能用d.a.a的属性?
GTA小鸡
高粉答主

2018-06-30 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.3亿
展开全部
这很简单:Thread类中有一个target域,调用构造方法Thread(Runnable)时就会将参数Runnable对象赋给target域。接下来调用start方法时只需要在新线程中执行target.run()方法即可。
d当然不能以常规方式访问a中任何非public的属性。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式