java提供了一个this关键字,通俗一点表示当前对象。主要有以下用法:
表示当前对象的引用
在这种情况下,又有两种情况:- 在构造器(构造方法)中引用该构造器正在初始化的对象
public class ThisTest{ private int i; public ThisTest(int i){ //this.i表示当前对象的成员i this.i = i; } }
- 在类中的一个方法,访问类中的另一个方法(同一个类中可以省略this),需要注意的是,static方法中不能使用this,例如:
public class ThisTest{ private int i; public ThisTest(int i){ this.i = i; } public void info1(){ System.out.println("测试this用法"); } public void info2(){ //这种用法是对的,且此处省略了this info1(); } public static void main(String[] args){ //这种用法是错误的 info1(); } }
main()方法是static,上面代码运行结果为:
当然,若想在static中调用非static方法,可以新创建一个对象(如:new ThisTest(2).info1())。再加一句:static修饰的成员是类成员,不要使用对象去调用。- 返回当前对象
public ThisTest info3(){
this.i++;
return this;
}
使用this作为返回值可以让代码更加简洁,但是容易犯浑,要注意
3. 构造方法中引用满足条件的构造方法
public ThisTest(int i, int j){
this(i);
}
需要注意的是:一个构造方法中只能使用this引用一个构造方法且必须位于第构造方法中的第一条语句。