使用“这个”的好处。

时间:2012-02-07 05:53:55

标签: java oop coding-style

我在OOP中阅读了很多大型项目,我注意到他们中有很多人使用this.[variable][ClassName].[staticVariable]。例如:

public class ABC {

    private float mX;
    public static float y;    

    public float getX() {
        return this.mX;
    }

    public float doSomethingWithY() {
        return ABC.y;
    }

}

即使使用Eclipse自动生成的Getters & Setters功能,它也会附带this.[variable],虽然没有必要,因为那里没有声明局部变量。

使用这些符号时是否有任何优势,或者只是代码风格?

编辑所以有些人不会误解。我知道this[ClassName].[staticVariable]代表的是什么。但在这种情况下,这是不必要的。问题是:即使没有必要,为什么大师编码器仍然添加它?当他们需要更新/修复一个庞大的项目时,会有什么优势和劣势吗?

6 个答案:

答案 0 :(得分:3)

基本上,您可以确定您正在使用类属性,而不是使用在方法内创建的变量,或者可能作为参数接收。

而且,如果你有一个同名的本地var,它会有所帮助。

最后一个原因:可读性。

答案 1 :(得分:2)

在某些情况下这是必要的,例如,当您需要使用成员变量而不是同名的本地方法参数时,需要this.

静态变量也是必需的,你需要特定哪个类要从中获取静态变量(许多类可以定义具有相同名称的静态变量)。

除了必要的案例外,它实际上是编码风格的问题。我的建议是使用,只要它有助于解决潜在的歧义

答案 2 :(得分:1)

在复杂的方法中,有时很好地区分这个类中的实例变量和特定函数中的局部变量。当你使用“this”时,这种区别就很明显了。

答案 3 :(得分:0)

对于小块代码而言无关紧要,但有时会发生这种情况:

public float getX() {
    ....
    int mX = someFunc()
    ...
    return mX;
}

在这种情况下,返回本地值而不是成员变量。

您通常希望明确并说出this.mX。但是,你不应该有很大的功能。

答案 4 :(得分:0)

this.? '?' is a member variable, this is a reference to the current object.

请参阅this

答案 5 :(得分:0)

它的语法,如果你想访问类的实例变量,可以使用(对象的引用)。(实例变量名).Like

A a= new A();// for non static class,this for the current object
a.(instance variable name)
// for non static class do the same but use (class name).variable name