我应该使用Point.x还是Point.getX()?

Evo*_*lor 6 java getter point

我有一个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之间的区别,但它并没有真正回答我的问题.或者至少我不明白答案.

Kev*_*man 4

该类的getX()getY()函数Point返回一个 double,因为这是其父类 ( Point2D ) 所需要的。这样它的所有子类(Point2D.DoublePoint2D.Float)都将在相同的位置工作。

在这种情况下,直接使用point.xandpoint.y代替 getter 函数可能没问题,因为 Point 类是一个奇怪的极端情况,似乎没有人喜欢——大多数人认为它应该是不可变的,或者至少更好地隐藏它的值。

如果您害怕代码审查之类的事情,只需在其中添加注释,解释为什么要直接访问 x 和 y 变量。

tl;dr:这只是取决于个人喜好。