this 一个常用的修饰符,可他的用法老是整错,有没有什么简便方法记住他所有的用法?
this代表当前类实例化后的对象的引用
this有两个用法(起码在编程的时候只有这两个最常用),一个是调用别的构造函数,一个是用来区别成员变量和参数。
比如
private int x;
public void setx(int x)
{
this.x = x; //区别作为参数的x和作为局部变量的x
}
总结一下this的三种用法:
1、表示对当前对象的引用!
2、表示用类的成员变量,而非函数参数,注意在函数参数和成员变量同名是进行区分!其实这是第一种用法的特例,比较常用,所以那出来强调一下。
3、用于在构造方法中引用满足指定参数类型的构造器(其实也就是构造方法)。但是这里必须非常注意:只能引用一个构造方法且必须位于开始!
还有就是注意:this不能用在static方法中!所以甚至有人给static方法的定义就是:没有this的方法!虽然夸张,但是却充分说明this不能在static方法中使用!
那么在怎样的情况下需要用到this呢:
第一、通过this调用另一个构造方法,用发是this(参数列表),这个仅仅在类的构造方法中,别的地方不能这么用。
第二、函数参数或者函数中的局部变量和成员变量同名的情况下,成员变量被屏蔽,此时要访问成员变量则需要用“this.成员变量名”的方式来引用成员变量。当然,在没有同名的情况下,可以直接用成员变量的名字,而不用this。
第三、在函数中,需要引用该函所属类的当前对象时候,直接用this。