是否有充分的理由使用影子字段的参数?这两者有什么区别:
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;
}
}
答案 0 :(得分:5)
我认为这是一个风格问题,但特别是对于公共字段 - Point(int x,int y)
是自我记录,而Point(int a, int b)
不是
答案 1 :(得分:2)
在第二种情况下,x
和y
显然有一个目的,尽管存储在两个地方。如果您看到a
,b
,x
和y
,那么它们之间的关系并不明显。
答案 2 :(得分:0)
不同之处在于可读性以及IDE将向您展示的内容。
IMO参数应尽可能描述性地命名,以便IDE和Javadoc尽可能具有沟通性和表达性。
答案 3 :(得分:0)
还有一个难以发现错误的问题。
在构造函数中使用x而不是this.x是潜在的错误来源。