Java中this对象引用理解
博客专区 > FeanLau 的博客 > 博客详情
Java中this对象引用理解
FeanLau 发表于6个月前
Java中this对象引用理解
  • 发表于 6个月前
  • 阅读 7
  • 收藏 0
  • 点赞 0
  • 评论 2

标题:腾讯云 新注册用户域名抢购1元起>>>   

在Java中理解了成员变量、方法和局部变量,可以想象出对象在其自己的方法中应该可以访问自己的成员变量,确实如此,下面的代码说明这个问题:

class Hello {

    public static void main(String args[]) {
        // 创建Person对象,然后调用其showAge方法
        new Person().showAge();
    }
}

class Person {
    int age = 23;
    String name = "Tom";

    void showAge()
    {
        System.out.println("My name is " + name + ", and my age is " + age + ".");
    }
}

演示的效果如下:

提示:如果某个对象只是被访问一次,可以直接在new操作后调用其方法或成员变量,而不用将new操作的返回值赋给一个引用。因为new操作的返回值就是所创建对象的引用,这与使用明确声明的引用来进行调用作用是一样的。

从上图中可以看出,程序编译、运行一切正常。这时,细心点,提出一个问题:如果成员变量与局部变量同名,调用时,是如何处理的?请考虑以下的代码:

class Hello {

    // 定义了成员变量i,初始值为500
    int i = 500;

    void showI() {
        // 定义了局部变量i,初始值为300
        int i = 300;
        System.out.println("The value of i is " + i + ".");
    }

    public static void main(String args[]) {
        new Hello().showI();

    }
}

 编译并运行如上代码,其结果如下所示:

从上面的图中可以看出,打印的是局部变量i的值。也就是说,在当局部变量与成员变量同名时,系统将访问局部变量。在这种情况下,如果要访问成员变量,就可以使用预定义对象引用this。this可以在任何一个方法中使用,表示指向对象自己的引用。

将上图中的第9行代码修改为:

System.out.println("The value of i is " + this.i + ".");

再次编译并运行如上代码,其结果如下:

共有 人打赏支持
粉丝 2
博文 195
码字总数 99378
评论 (2)
FeanLau
这个其实不能算是理解,只能算是简单的应用的,没有深入去看
FeanLau
Java中的this和PHP中的this一样,没有太多的区别
×
FeanLau
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: