您的位置:首页 > 其它

作为参数传递“this”变量

2010-09-27 09:33 183 查看
问题的来源是这样的,前天在学习“this”的相关用法时,因为书上描述不是很清楚。自己找了网上一篇关于这方面的总结,其中提到this的四种用法:
ü 构造方法的重用;
ü 消除歧义;
ü 返回对象—链式方法的调用;
ü 作为参数传递"this”变量-进行回调
前面三种都能看懂,可是第四种方法始终没看懂;他的列子是:

假设有一个容器类和一个部件类,在容器类的某个方法中要创建部件类的实例对象,而部件类的构造方法要接受一个代表其所在容器的参数。例如:
class Container{
Component comp;
public void addComponent(){
comp = new Component(this); //代表你所创建的对象,因为它要用到.
}
}

class Component{
Container myContainer;
public Component(Container c){
myContainer = c;
}
}

后来在一位师兄的指点下终于了解了该方法的用法,这里我们定义的类Component中有一个带参构造函数其参数为“Container c”,所以我们在实例化该类时必须给他传递类型为Container的实例。所以如上我们在类Container中需要创建Component的实例,我们就必须给他传递类Container的实例。所以这里的this就代表我们将要创建的类Container的对象!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: