作为参数传递“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的对象!
ü 构造方法的重用;
ü 消除歧义;
ü 返回对象—链式方法的调用;
ü 作为参数传递"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的对象!
相关文章推荐
- Android Context作为参数传递this
- 在C代码中将结构体变量作为参数传递效率忒低
- 从零开始前端学习[48]:js中的变量和this的初步认识
- c++中临时变量不能作为非const的引用参数的方法
- 将数组作为参数传递(C# 编程指南)
- 在定制工作项时,把“团队项目”作为变量获取生成版本信息
- 关于Python里MYSQL使用变量作为表名时该如何使用
- 深入学习JS执行--创建执行上下文(变量对象,作用域链,this)
- ajax使用函数中的this变量问题及其解决方法
- 【转】c/c++:二维数组作为参数传递
- 对Java方法内部使用this访问成员变量的深入理解
- C语言中如何将二维数组作为函数的参数传递
- 从一个Bug说开去--解决问题的思路,Linked Server, Bulk Insert, DataTable 作为参数传递
- 如何将二维数组作为函数的参数传递
- c++ enum 作为成员变量
- Python:如何将字符串作为变量名
- 如何用Timer作为变量为FC/FB传递参数?
- .NET DateTime类型变量作为参数时设置默认值
- JS中的this变量的使用介绍
- js 作为属性的变量