Is this sort of thing bad practice (using parameter names that are the same as my field names in the constructor)?
public My_Rectangle(double x, double y, double width, double height) {
this.x=x;
this.y=y;
this.width=width;
this.height=height;
}
It makes good sense to me. I don't need to invent two different
names for the same thing:
private final double x, y, width, height;
public MyRectangle(double top, double left,
double wide, double tall) {
x = top;
y = left;
width = wide;
height = tall;
}
Also, if the names agree I'm less likely to make the kind of
silly error shown above. (Did you spot it on the first reading?)
Keep in mind that the parameter names used for non-private
methods and constructors are as much a part of the interface as
are the method names themselves. They're visible in the Javadoc,
and are probably visible when an IDE auto-suggests or even auto-
generates code. So you don't just need names, you need good
names. If you then insist on using different names for the fields,
you may wind up giving the good names to the clients and forcing
the implementor to suffer with less-good names. Some people get
around this by inventing one good name and then altering it:
private final double _goodName;
public Thing(double goodName) {
_goodName = goodName;
}
.... but to my eye this is awkward and ugly. YMMV.