假设有一个容器类和一个部件类,在容器类的某个方法中要创建部件类的实例对象,而部件类的构造方法要接受一个代表其所在容器的参数,程序代码如下: class Container
{
Component comp;
public void addComponent()
{
comp = new Component(this); // 将this作为对象引用传递
}
}Class Component
{
Container myContainer;
public Component(Container c)
{
myContainer = c;
}
}对于这个程序, 我的疑问是在容器类的某个方法中创建部件类的实例对象有何意义? 作用是什么??为什么用addComponent方法?在java中this的词义就是代表方法所属的对象的引用变量。那此时this代表的应该就是一个容器类的引用变量, 应该是把this这个外部的参数传递给谁呢, myContainer还是c呢? 这样传递的意义何在呢??
{
Component comp;
public void addComponent()
{
comp = new Component(this); // 将this作为对象引用传递
}
}Class Component
{
Container myContainer;
public Component(Container c)
{
myContainer = c;
}
}对于这个程序, 我的疑问是在容器类的某个方法中创建部件类的实例对象有何意义? 作用是什么??为什么用addComponent方法?在java中this的词义就是代表方法所属的对象的引用变量。那此时this代表的应该就是一个容器类的引用变量, 应该是把this这个外部的参数传递给谁呢, myContainer还是c呢? 这样传递的意义何在呢??
这里的this,即你的容器对象,用 new Component(this); 执行的结果是在当前这个对象下创建组件对象。这个this,也即public Component(Container c)中的c。明白了吧。
使用addComponent方法可以实例化Container对象不用在去new Container类对象
好处就是可以防止有Container类的多个对象存在.