java中的this引用的理解
每个类中都有一个本类的this引用,类似:类名 this;
实例对象时,this引用指向对象本身
其最主要的作用是让类中的方法可以访问本类中的另外一个方法或属性,因为调用一个方法或属性(非类方法/属性)必须要有实例
非类方法/属性相当于方法的参数列表有个隐含参数[类名 this]或属性实际为this.属性
注意,static修饰的方法中无这个隐含的参数,static修饰的变量无this.前缀
因为没有实例时可以调用static方法/属性,假设未创建对象时调用static类/属性,由于this并未指向任何对象,所以如果static方法/属性有this参数或this.前缀会报错,所以static修饰的方法/属性访问不了非static的属性和方法,除非在static方法中创建一个对象,然后用对象引用访问方法/属性,这是可以的
系统调用构造器创建一个对象后,返回对象的引用,顺便将这个引用赋给了这个对象的this
如下是一个类的实际定义
public class Person
{
Person this;
Person(…){...}
类型 this.属性名;
类型 方法1(Person this,…){
this.属性=xxx;
}
类型 方法2(Person this,…){
this.方法1();
}
static 类型 属性;
static 类型 方法1(…){
由于参数无this引用,所以无法访问实例的属性和方法
创建一个对象,然后用对象引用访问方法/属性,这是可以的
}
};