this的本质:
就是“创建好的对象的地址”!由于在构造方法调用前,对象已经创建。
因此,在构造方法中也可以使用this代表“当前对象”
this最常见的用法:
1、
在程序中产生二义性之处,应使用this来指明当前对象;普通方法中,this总是指向调用该方法的对
象。构造方法中,this总是指向正要初始化的对象。
2、
使用this关键字调用重载的构造方法,避免相同的初始化代码。但只能在构造方法中用,并且必须位于 构造方法的第一句
3、
this不能在static方法中使用`
/**
- this()调用重载和构造方法
- @author WY
*/
public class TestThis {
int a,b,c;
TestThis(){
System.out.println("正要初始化一个Hello对象");
}
TestThis(int a,int b){
//TestThis();这样无法调用构造方法
this();
a = a; // 这里都是指局部变量而不是成员变量
//这样就区分了成员变量和局部变量,this的用法绝大多数是这种情况
this.a = a;
this.b = b;
}
TestThis(int a,int b,int c){
this(a,b); //调用带参数的构造方法,并且必须为第一位;
this.c = c;
}
void sing(){
}
void eat(){
this.sing(); //调用本类中的sing();
System.out.println("你妈妈喊你回家吃饭!");
}
public static void main(String[] args) {
TestThis hi = new TestThis(2,3);
hi.eat();
}
}
创建一个对象的完整四步:
1、分配对象空间,并将对象成员变量初始化为0或空
2、执行属性值的显式初始化
3、执行构造方法
4、返回对象的地址给管的变量