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中任何属性? 展开
A implements Runnable
A a =new A();
Thread d=new Thread(a);
为什么d.start();可以调用A中的run方法?
还有d是否能调用A中任何属性? 展开
2个回答
展开全部
第一个问题,传进构造函数的 a 对象会作为外面 d 对象的一个成员变量,d 当中的 start 里面调用了 this.a.run()。当然你用 Thread 这个例子更复杂一些,通过加入线程组来执行 run() 方法的。
第二个问题,分情况,如果是 public 的属性就可以访问到,如果不是,就看这些属性的可见性修饰符是什么以及 A 类所在的位置,比如是不是 d 的内部类、是否在同包等。当然你用 Thread 这个例子更简单些,因为 Thread 基本上不会调你的其他属性。
第二个问题,分情况,如果是 public 的属性就可以访问到,如果不是,就看这些属性的可见性修饰符是什么以及 A 类所在的位置,比如是不是 d 的内部类、是否在同包等。当然你用 Thread 这个例子更简单些,因为 Thread 基本上不会调你的其他属性。
追问
问一下,一般情况下,d对象是不是要private一个a对象的引用型变量,然后把a对象的地址
赋过去,随后才能用d.a.a的属性?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询