自己之前刚开始学习Java的时候,看过一些this的用法,但大多数讲的都是教你怎样使用this这个关键字,并没有很清楚的讲解Java中为何要使用this这个关键字,本文章并不阐述this如何使用,重点介绍this关键在Java语言中是如何被“制造”出来的。
首先有一个问题,Java中当一个类有多个对象的时候,如a和b两个对象,在a和b都调用同一个方法时,Java如何知道是被a调用的还是被b调用的?
public class Test {
public static void main(String args[]){
Car b=new Car();
Car a =new car ();
a.run(70);
b.run(80);
}
}
class Car{
public void run(int num){
}
}
面向对象的语法来编写代码时,它会用“发送消息给对象”的方式来告诉究竟是哪个对象调用了此方法。因此 Java的编译器为我们开发人员做了一些幕后工作,它暗自把”所操作对象的引用“作为第一个参数传给了run()方法,因此上边两个方法的调用就会变成下面这个样子滴。
Car.run(a,70);
Car.run(b,80);
这是内部类的表示形式,我们自己并不能如此的写代码,但它能帮助我们更好的了解实际上Java中如何区别是那个对象调用此方法。
如果我们希望在方法的内部获得对象向的引用,由于这个引用是编译器"偷偷"的自己传入的,因此没有标示符可用,但是,为此专门有个关键字this。this只能在方法内部使用,表示"调用方法的那个对象"的引用。this的用法和其他对象引用并无不同,要注意的是,在一个方法内部调用同一个类的另一个方法时,就没必要使用this了。
如果有同学想更进一步的学习this的用法请参考“Java编程思想”。。。。