java中this用法详解
一:用法总括
this关键字必须放在非静态方法内:
this关键字代表自身,在程序中主要的使用用途有以下几个方面:
1:引用成员变量。
2:在自身构造方法内部引用其他构造方法。
3:代表自身类对象
4:引用成员方法
二:引用成员变量
在一个类的方法或构造方法内部,可以使用“this.成员变量名”来引用成员变量,参数名与成员变量名重叠时不能省略,不重叠时可以省略。
例如:
public class ReferenceVariable { private int a; public ReferenceVariable(int a) { this.a = a; } public int getA() { return a; } public void setA(int a) { this.a = a; } }
构造方法和set方法内部参数a与成员变量a名称一样,变量名发生重叠,java语言规定当变量名作用范围重叠时,作用域小的变量覆盖作用域大的变量。当然,为了增加代码的可读性,一般将参数名和成员变量名设为一致,这样访问成员a则必须使用this进行引用。
三:引用构造方法
在一个类的构造方法内部,也可以使用this关键字引用其他的构造方法,达到优化代码的目的。
例如:
public class ReferenceConstructor { private int a; public ReferenceConstructor() { this(0); //无参构造调用有参构造 } public ReferenceConstructor(int a) { this.a=a; } }
在构造方法内部使用this关键字调用其他构造方法时,调用代码只能出现在构造方法内部的第一行可执行代码。
四:代表自身对象
每个类内部都有一个代表自身类的隐含的成员变量,该成员变量的类型是该类的类型,该成员变量的名称是this,实际使用this代表自身类的对象的实例。
例如:
public class ReferenceObject { ReferenceObject instance; public ReferenceObject() { instance = this; } public static void main(String[] args) { ReferenceObject ro = new ReferenceObject(); System.out.println(ro.instance); } }
五:引用成员变量
在一个类内部,成员方法之间的互相调用可以使用“this.方法名(参数类型 参数)”的方式调用,其中this可以省略。