3

因此,当类成员和参数使用相同的名称时,我知道 this 在构造函数中是多么有用。

人们通常在构造函数之外使用它来访问实例变量/成员和函数吗?这是一个好习惯吗?我应该继续使用这个关键字还是不应该使用它?

class Test {
    private int num = 0;

    Test(int num) {
        this.num = num;
    }

    public int getNum() {
        return this.num;     // I could write num;
    }

    public void doSomething() {
        System.out.println(this.getNum());    // I could have just invoked getNum()
    }

}
4

5 回答 5

2

首先,这是个人(或团队)风格的问题。一些开发人员认为它有助于提高可读性,而另一些开发人员则认为它是多余且繁琐的。

话虽如此,我认为使用它是一个好主意,this因为它可以防止不同范围之间的混淆

如果this始终使用,则检查部分代码的开发人员不必在每次引用变量时都向上滚动以找出其范围。

于 2013-04-02T15:33:55.997 回答
1

当在一个团队中工作时,最重要的事情可能是所有成员都使用相同的样式,例如格式、camelCase 或 mCamelCase 名称,甚至在任何地方都使用这个关键字。

没有什么比使用不同风格的代码更不可读了。

您参与的每个项目可能都有不同的风格,但所有成员都应遵守规则。

只要灵活一点。

于 2013-04-02T15:28:48.543 回答
0

是的,你可以做到this.your_fieldthis使用关键字没有问题。

于 2013-04-02T15:19:16.563 回答
0

尝试在 eclipse 中生成 getter。即使 eclipse 也会this在构造函数之外使用关键字 ;) 所以,是的,它是常用的并且非常习惯的做法。

于 2013-04-02T15:22:05.553 回答
0

只有在您引用完全不同的变量/方法时才需要使用它。

例如,在您上面的构造函数中,如果您没有使用它,您将指的是传递给构造函数的参数。

在您的 doSomething() 方法中,不需要 this 关键字。

于 2013-04-02T15:33:48.230 回答