I’ve read many large projects in OOP, and I notice that a lot of them use this.[variable], [ClassName].[staticVariable]. For example:
public class ABC {
private float mX;
public static float y;
public float getX() {
return this.mX;
}
public float doSomethingWithY() {
return ABC.y;
}
}
And even with Eclipse auto-generated Getters & Setters feature, it also comes with this.[variable], although it’s unnecessary, because no local variable is declared there.
Is there any advantage when using these notations, or it’s just a code style?
EDIT so some people don’t misunderstand. I know what this and [ClassName].[staticVariable] stand for. But in this case, it’s unnecessary. The question is: Even if it’s unnecessary, why do guru coders still add it? When they need to update/fix a huge project, will there be any advantage and disadvantage?
It’s necessary in some circumstances, for example
this.is required when you need to use a member variable rather than a local method parameter of the same name.It’s also necessary for static variables where you need to be specific which class you want to get the static variable from (many classes could define static variables with the same name).
Apart from the necessary cases, it’s really a matter of coding style. My recommendation is to use it whenever it helps to resolve potential ambiguity.