This的两种基本用法
一、是一个系统隐含的指针
public class ThisDemo1 {
public static void main(String[] args)
{
A aa1 = new A(10);
A aa2 = new A(20);
aa1.show();
aa2.show();
}
}
class A
{
public int i;
public A(int j)
{
i= j;
}
public void show()
{
System.out.printf("i = %d\n",i);
}
}
在对象aa1与aa2都调用方法show()时,如何分辨呢,在java中show()方法相当于如下形式:
public void show(A *this)
{
System.out.printf("i = %d\n",(*this).i);
}
哪个对象调用show()方法,那么this就指向当前调用该函数的对象
二、this表示正在调用该方法的那个对象
两种情况:
在普通方法中,this代表调用了该方法的对象,此时this可省略
在构造方法中,this代表该方法本次运行所创建的那个对象
class A
{
private int i;
public A(int i)
{
this.i = i; //将形参 i 赋给该构造方法本次运行所创建的那个新对象的实参i数据成员
}
public void show(){
System.out.println("i = " + this.i);
//this表示当前时刻正在调用show方法的对象
//this可以省略
}
}
注:参考的郝斌老师的视频