Java_this

来源:互联网 发布:域名备案账号忘记 编辑:程序博客网 时间:2024/05/22 08:25

 this 
要点: 
this关键字只能在方法中使用,它能为调用该方法的对象提供相应的句柄,使得同一个类产生的不同对象实例在调用同一方法的时候,系统能判断出是哪一个对象在进行调用. 
比如: 
MyObject a=new MyObject(); 
MyObject b=new MyObject(); 
a.f();// (3) 
b.f();// (4) 
编译器在编译的时候,实际上是将(3),(4)句解释为 
MyObject.f(a); 
MyObject.f(b); 
的,这样就将调用了该方法的对象的信息传到了方法中,也就是传给了this,就可以通过this表示调用该方法的对象实例. 

用this的概念还可以解释为什么在静态方法中不能调用非静态方法和元素,这是因为静态方法中没有this,也就是说我们不能获得调用该方法的对象的句柄.既然找不到这个对象实例,我们又怎么能够在其中调用对象实例的方法和元素呢? 

那为什么静态方法没有this呢?用静态方法的概念可以来理解这个问题.静态方法是类方法,是所有对象实例公用的方法.它不属于某一个具体的对象实例,因此也无法用this来体现这个实例.这和非静态方法是不一样的.打个比方,在一个局域网内的几个用户每个人都有一台客户机,但都访问一台公共的服务器.对于每台客户机来说,它的this就是使用它的用户.而对于服务器来说,它没有this,因为它是大家公用的,不针对某一个具体的客户. 

0 0
原创粉丝点击