我有一个Point
.我想x
成为一个int
.如果我使用Point.x
,我会得到x
一个int
.但我觉得我应该尽可能使用getter(为什么要使用getter和setter?).问题Point.getX()
是它返回一个double而不是int.
哪个更好,还是只是偏好?
a
还是b
?
Point point = new Point(5, 5);
int a = point.x;
int b = (int) point.getX();
Run Code Online (Sandbox Code Playgroud)
我已经阅读了Java Point,getX()和point.x之间的区别,但它并没有真正回答我的问题.或者至少我不明白答案.
该类的getX()
和getY()
函数Point
返回一个 double,因为这是其父类 ( Point2D ) 所需要的。这样它的所有子类(Point2D.Double和Point2D.Float)都将在相同的位置工作。
在这种情况下,直接使用point.x
andpoint.y
代替 getter 函数可能没问题,因为 Point 类是一个奇怪的极端情况,似乎没有人喜欢——大多数人认为它应该是不可变的,或者至少更好地隐藏它的值。
如果您害怕代码审查之类的事情,只需在其中添加注释,解释为什么要直接访问 x 和 y 变量。
tl;dr:这只是取决于个人喜好。