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