在OOP中,在课堂上使用"this"的最佳做法是什么?

Dan*_*edo 10 java oop coding-style

我一直想知道的事情; 在一个类中,你可以通过使用'this.[NAME]'或简单地[NAME]来引用一个成员,这是首选?

例如在Java中:

public class foo {
    public int bars = 0;
    private void incrementBars(){
        bars++;
    }
}   
Run Code Online (Sandbox Code Playgroud)

public class foo {
    public int bars = 0;
    private void incrementBars(){
        this.bars++;
    }
}
Run Code Online (Sandbox Code Playgroud)

"似乎"具有相同的效果.

在我实例化类foo的多个实例的情况下,到目前为止,我做了类似的事情:

for (foo f : listOfFoos){
    f.incrementBars();
}
Run Code Online (Sandbox Code Playgroud)

它似乎仍然有效.

它在技术上是不明确的,如果是这样,有一种首选方式吗?

Jig*_*shi 15

this在的情况下variable shadowing.

 class MyClass{
        int i;//1
        public void myMethod(){
            i = 10;//referring to 1    
        }

        public void myMethod(int i){//2
            i = 10;//referring to 2
            this.i = 10 //refering to 1    
        }    
    }  
Run Code Online (Sandbox Code Playgroud)

this由于我们的英语思维方式,有时也会使代码更具可读性

  • 就个人而言,我发现`这个.*总是*更具可读性.Imo引入了一致性.无论上下文如何,您都可以确定该变量是该对象的成员. (4认同)

Tru*_*ill 5

没有歧义.如果有,你必须使用this.

有些人建议this清楚.其他人建议在不需要时反对它,因为它引入了"噪音".为清晰起见,一些现代IDE或编辑器可能能够使用语法突出显示以不同于字段的颜色(例如)参数.

就个人而言,我可以避免this使用@ unholysampler的下划线约定.与您的同事达成协议并将其纳入您的编码标准.