public class Employee{
 public void input(ControlSys controSys) {
        controSys.getInputEquip().input(); //这个语句是得到InputEquip中的某个属性
    }
}其中ControlSys有这个类,InputEquip也有这个类
在ControlSys类中有getInputEquip()方法,能得到InputEquip的实例,也就是得到InputEquip inputequip = new InputEquip()中的inputequip吧
我想问下如果我在测试类中的main方法中 Employee em = new Employee();然后em.input,最后得到属性的是em这个实例还是controSys实例
不好意思我表达不清楚,我就是想知道input方法是让Employee new出的实例得到属性还是让InputEquip new出的实例得到属性还是让ControlSys new出的实例得到属性。谢谢!

解决方案 »

  1.   

    controSys实例是你调用Employee实例em的input之前就要创建的啊,如果没有创建controSys实例,你怎么调用Employee实例em的input方法?
      

  2.   

    调用getInputEquip()返回的对象的input方法.
      

  3.   

    最后的属性值肯定是InputEquip new出的实例
      

  4.   

    我想楼主要是了解了is-a,has-a和uses-a这3种关系就好理解了。你的Employee类,ControlSys类和InputEquip类初步判断应该是相互调用的关系。就是E类用到C类,而C类又用到了I类。那这种关系的话,你就好理解了。比如E类的属性有age, gender等,C类有属性:sysID等,I类有inputequipID等,那么很直接就是当E类用到I类的时候,其实这个“用”就是通过I类的方法去访问I类的变量或者属性。那么怎么访问呢?还是要通过I类的实例啊。所以属性是不会变得,该是谁的就是谁的。换个角度考虑,如果我用了你的东西,这个东西就是我的了,那岂不是天下大乱了吗?