首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用“this”的优势。

使用“this”的优势。
EN

Stack Overflow用户
提问于 2012-02-07 13:53:55
回答 5查看 174关注 0票数 1

我读过很多OOP中的大型项目,我注意到其中很多都使用了this.[variable][ClassName].[staticVariable]。例如:

代码语言:javascript
复制
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]代表什么。但在这种情况下,这是不必要的。问题是:即使它是不必要的,为什么大师程序员仍然要添加它?当他们需要更新/修复一个巨大的项目时,会有什么优势和劣势吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-02-07 13:58:19

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

对于静态变量,这也是必要的,因为您需要具体说明您希望从哪个类获取静态变量(许多类可以定义具有相同名称的静态变量)。

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

票数 2
EN

Stack Overflow用户

发布于 2012-02-07 14:11:53

基本上,您可以肯定地知道您正在使用的是class属性,而不是在方法内部创建的变量或可能作为参数接收的变量。

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

最后一个原因:可读性。

票数 3
EN

Stack Overflow用户

发布于 2012-02-07 13:55:52

在复杂的方法中,有时区分这个类中的实例变量和特定函数中的局部变量是很好的。当你使用“This”时,这种区别是显而易见的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9171616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档