使用关键字“this”来访问实例函数或成员是一个好习惯吗?

时间:2013-04-02 15:18:10

标签: java keyword

所以我知道当构件成员和参数使用相同的名称时,它在构造函数中有多么有用。

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

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()
    }

}

5 个答案:

答案 0 :(得分:2)

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

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

如果始终使用this,那么检查部分代码的开发人员不必在每次引用变量时向上滚动,只是为了找出它的范围。

答案 1 :(得分:1)

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

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

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

只是灵活。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

尝试在eclipse中生成getter。甚至eclipse也会在构造函数之外使用this关键字;)所以,是的,它是常用的,非常习惯性的实践。

答案 4 :(得分:0)

如果你指的是一个完全不同的变量/方法,你只需要使用它。

例如,在上面的构造函数中,如果你没有使用它,那么你将引用传递给构造函数的参数。

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