java中的this指针有两种用法,一是用在构造函数中,二是用在公用方法中。
定义:是一个系统隐含的指针,被自动附加在非静态的成员函数的参数列表中。(静态函数内部没有this指针)
1.在构造函数中的用法
用来把参数赋值给与构造函数形参同名的成员变量。
class A
{
int i = 1;
public A(int i) //构造函数
{
this.i = i; //如果写成i = i,明显不合适
}
}
public class Test
{
public static void main(String[] args)
{
A a1 = new A(2);
System.out.printf("i = %d\n", a1.i);
}
}
输出结果:i = 2
2.在公用方法中
同一个类创建出来的对象在堆中都有属于自己的数据成员,但公用方法是放在代码区共用的。当调用公用方法对数据成员进行操作时,并不知道操作的是哪个对象中的成员,因此有了隐含的this指针,每一个非static方法中都隐含一个this指针,指向当前正在调用该方法的对象。
class A
{
int i = 1;
public A(int j)
{
i = j;
}
public void show()
{
System.out.printf("i = %d\n", this.i); //this是隐含的,可写可不写,但一般写出
}
}
public class Test
{
public static void main(String[] args)
{
A a1 = new A(2);
A a2 = new A(3);
a1.show();
a2.show();
}
}
i = 2
i = 3