this的本质

this的本质就只“创建好的对象的地址”,我们在内存分析中,new一个对象的时候,具体的步骤是这样的

1、分配对象空间,并将对象成员变量初始化为0或空

2、执行属性值的显式初始化

3、执行构造方法

4、返回对象的地址给相关的变量

 按照以上步骤,早构造方法调用之前,对象已经创建。因此,在构造方法中也可以使用this代表“当前对象”。

this最常的用法:

1、在程序中产生二义性之处,应使用this来指明当前对象。

        1.1普通方法中,this总是指向调用该方法的对象、

        1.2构造方法中,this总是指向正要初始化的对象。

2、使用this关键字调用重载的构造方法,避免相同的初始化代码。但只能在构造方法中用,并且必须位于构造方法的第一句。

3、this不能用于static方法中。因为内存分析中,Static方法是类方法,先于任何的实例(对象)存在。即Static方法在类加载时就已经存在了,但是对象是在创建时才在内存中生成。而this指代的是当前的对象。

public class TestThis {

	private String name;
	private int age;
	private String no;
	private TestThis testThis;
	
	TestThis(String name,int age){
		this.name = name;	//在程序中产生二义性之处,应使用this来指明当前对象。
		this.age = age;
	}
	
	TestThis(String name,int age,String no){
		this(name,age);	//使用this关键字调用重载的构造方法,避免相同的初始化代码
		this.no = no;
	}
	public static void main(String[] args) {
		//this. //报错Cannot use this in a static context,this不能用于static方法中。
		TestThis testThis = new TestThis("林",3,"10");
		System.out.println(testThis.name);
	}

}

 结果

 

你可能感兴趣的:(java基础)