5

是否有充分的理由使用阴影字段的参数?这两者有什么区别:

public class Point {
    public int x = 0;
    public int y = 0;

    //constructor
    public Point(int a, int b) {
        x = a;
        y = b;
    }
}

public class Point {
    public int x = 0;
    public int y = 0;

    //constructor
    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }
}

如果你this在这个例子中使用不带参数的关键字会影响字段(我猜这只是不必要的):

public class Point {
    public int x = 0;
    public int y = 0;

    //constructor
    public Point(int a, int b) {
        this.x = a;
        this.y = b;
    }
}
4

4 回答 4

5

我认为这是一个风格问题,但特别是对于公共领域 -Point(int x,int y)自我记录,而Point(int a, int b)不是

于 2012-12-09T00:18:59.587 回答
2

在第二种情况下,很明显xandy有一个目的,尽管存储在两个地方。如果你看到a, b,x并不y清楚它们之间的关系是什么。

于 2012-12-09T00:18:42.847 回答
0

区别在于可读性和 IDE 将向您展示的内容。

IMO 参数的命名应尽可能具有描述性,以便 IDE 和 Javadocs 尽可能具有交流性和表达性。

于 2012-12-09T00:20:12.150 回答
0

还有一个更难检测错误的问题。

在构造函数中使用 x 而不是 this.x 是潜在的错误来源。

于 2014-11-15T18:59:38.877 回答