this关键字
在一个对象中,例如 new Person(),那么在堆内存中会new一个Person对象,该对象中会有包含这一个this引用,它指向的是这个Person对象本身(只要该对象在堆内存中存在,那么this引用也会存在)。
//this关键字example
public class Person {
private String name;
//static成员变量在类加载的时候会分配空间初始化为0
private static int age;
Person(String name){this.name=name}
public Person inAge(){
age++;
return this;
}
..(getset省略)
public static void main(String[] args){
Person person=new Person("King");
int age=person.inAge().getAge();
}
}
上述例子中:
- Person(String name){this.name=name},里面的this为了形参和成员变量同名做区分。
- int age=person.inAge().getAge();在person.inAge()方法中返回的是this,会在栈里面给这个返回值分配一小块临时的存储空间存放this的内容,this指向自身person对象。inAge()方法中做了age++,那么age最后的值为1。