java中的this。又两个重要的用途1.this指向的是本类的对象.用于区分成员变量和局部变量2.调用其他类型的构造方法.还是来看看下面的代码
/**
* @author hackbase this的深入理解
*/
public class TestThis {
int id;
String name;
int age;
public TestThis(int id, String name) {
this.id = id;
this.name = name;
}
public TestThis(int id, String name, int age) {
this(id, name);
this.age = age;
}
public static void main(String[] args) {
TestThis jack = new TestThis(12, "jack", 23);
System.out.println("id:" + jack.id);
System.out.println("name:" + jack.name);
System.out.println("age:" + jack.age);
}
}
在这里,我们首先要搞清楚对象是i如何创建的,分为一下四个步骤:
1.首先JVM给对象在堆里面分配内存空间。
2.完成成员属性显式的初始化的操作。
3.调用构造方法来进一步来实现对对象的初始化的操作.
4.将对象的引用赋值给一个变量。到这一步对象才创建完成.
在这里的构造方法一般是类的构造方法,我们没有提供构造方法的情况下JVM会嗲用无参数的构造方法,当我们重写构造
方法的时候,会调用我们创建的构造方法来完成对象的初始化的操作.
在上面的 代码里面,一段对象创建完成,那么this指向的就是本类对象。也就是我们的jack对象.
this.a实际上就是成员属性赋值给我们传递进来的值,我们传递进来的值赋值给了局部变量,用以达到区分成员变量和局部变量的目的,其次this还有一个重要的用法就是调用本类的其他的构造方法。此时,该代码必须写在程序的第一行,如上所述。
我们也可以像下面这样来实现.
this.a=a;
this.age=age;
this.name=name;
但是i这样写是非常的重复的,而且是很麻烦的。一般不建议。直接使用this(a,b)这样就可以。