欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java中的this关键字

程序员文章站 2024-03-05 14:56:54
...

当成员变量和局部变量重名时,可以采用this关键字来进行区分。
this
指所在函数所属对象的引用,
通俗的将就是:那个对象调用了this所在的函数,this就代表那个对象
eg:

class Person
{
    int age;
    String name;
    Person(int age)
    {
        this.age=age;
    }
    Person(int age,String name)
    {
        this(age);
        this.name=name;
    }
    void speak()
    {
        System.out.println("name="+name+"\nage="+age);
    }
}
class Demo
{
    public static void main(String args)
    {
        Person p=new Person(18,"旺财");
    }
}

程序的执行流程如下:
第一步:
java中的this关键字

1.执行主函数,主函数进入栈,
执行Person p=new Person(18,”旺财”);语句。
为对象 p 在堆中分配空间进行默认初始化。

name=null;
age=0;
2.对象 p 调用构造函数
java中的this关键字

(前面说过this的作用:那个对象调用他,他就指向那个对象)
所以this指向了p的地址。
即:
this->0x0034 (此时this等价于对象p)

开始执行构造函数的函数体
执行this(age),构造函数Person(age)入栈
因为this()被构造函数Person(name,age)调用,构造函数被对象调用。
所以,此时的this仍然指向对象p (this->0x0034)

执行构造函数体:
this.age=age; //p.age=18;
3. 构造函数Person(age)执行完毕。弹栈。
java中的this关键字

执行 this.name=name; //p.name=”旺财”
构造函数Person(name,age)执行完毕,进行弹栈。对象初始化完毕。
java中的this关键字

p指向地址0x0034。

相关标签: java