'this'指针只隐藏在C ++或java中吗?

时间:2014-08-20 20:19:35

标签: java c++ pointers this hidden

我最近一直在做大量的学习,我正在研究C ++,以及隐藏指针(this)的主题。

这是迄今为止我见过的最复杂的话题之一。我记得来自Java的this,我不记得它隐藏在Java中。我记得你必须在Java中明确地使用它,但显然它在C ++中是自动的。谁能证实这一点?

1 个答案:

答案 0 :(得分:9)

隐藏?它没有被隐藏。这甚至意味着什么?

  

我记得你必须在Java中明确地使用它

仅在某些情况下。名为name的变量可以在类中知道,也可以是方法中参数的名称。例如:

class Test {
    String name;

    public void test(String name) {
        name = name; // What happens?
    }
}

提及name两次都指的是参数。类字段保持不变。如果你想要类字段,你必须告诉编译器你想要this.name

在其他情况下,当名称中没有冲突时,this.部分是隐式的。示例:

class Test {
    String tutorName;

    public void test(String name) {
        tutorName = name; // What happens?
    }
}

即使您没有使用this关键字,也会更改班级字段。

相关问题