我读过很多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]代表什么。但在这种情况下,这是不必要的。问题是:即使它是不必要的,为什么大师程序员仍然要添加它?当他们需要更新/修复一个巨大的项目时,会有什么优势和劣势吗?
发布于 2012-02-07 13:58:19
这在某些情况下是必要的,例如,当您需要使用成员变量而不是同名的本地方法参数时,this.是必需的。
对于静态变量,这也是必要的,因为您需要具体说明您希望从哪个类获取静态变量(许多类可以定义具有相同名称的静态变量)。
除了必要的情况外,这实际上是一个编码风格的问题。我的建议是,只要它有助于解决潜在的歧义,就使用它。
发布于 2012-02-07 14:11:53
基本上,您可以肯定地知道您正在使用的是class属性,而不是在方法内部创建的变量或可能作为参数接收的变量。
而且,如果您有一个同名的本地var,它也会有所帮助。
最后一个原因:可读性。
发布于 2012-02-07 13:55:52
在复杂的方法中,有时区分这个类中的实例变量和特定函数中的局部变量是很好的。当你使用“This”时,这种区别是显而易见的。
https://stackoverflow.com/questions/9171616
复制相似问题