问题的来源是这样的,前天在学习“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的对象!

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐