1、 java使用this来区分当前对象。
Java中为解决变量的命名冲突和不确定性问题,引入关键字this代表其所在方法的当前对象的引用:
1) 构造方法中指该构造器所创建的新对象;
2) 方法中指调用该方法的对象;
3) 在类本身的方法或构造器中引用该类的实例变量(全局变量)和方法。
this只能用在构造器或者方法中,用于获得调用当前的构造器方法的对象引用。可以和任何的对象引用一样来处理这个this对象。
说明:
(1)当实例变量和局部变量重名,JAVA平台会按照先局部变量、后实例变量的顺序寻找。即,方法中使用到的变量的寻找规律是先找局部变量,再找实例变量。如果没用找到,将会有一个编译错误而无法通过编译。
(2)如果使用this.a,则不会在方法(局部变量)中寻找变量a,而是直接去实例变量中去寻找,如果寻找不到,则会有一个编译错误。即:表示用类的成员变量,而非函数参数。
(3)在一个方法内,如果没有出现局部变量和实例变量重名的情况下,是否使用this关键字是没有区别的。
(4)在同一个类中,Java普通方法的互相调用可以省略this+点号,而直接使用方法名+参数。因为Java编译器会帮我们加上。
Java中this关键字使用小结 - zheting - 博客园
Java中this关键字使用小结 - zheting - 博客园2
2、C++使用this:
this是指向当前对象指针。
this指针是类的一个自动生成、自动隐藏的私有成员,它是类的非静态成员函数的第一个的参数(隐含的参数),当一个对象被创建时,this指针就指向该对象。
一个类可以创建多个对象,每个对象的地址不同,所以不同对象中的this指针值也不相同,在应用时,只要记住this指向当前对象即可。