我有一个Point。我正试着让x成为int。如果我使用Point.x,我将获得x作为int。但是我的印象是,我应该尽可能地使用getter (为什么要使用getter和setter?)。Point.getX()的问题是它返回的是一个双,而不是一个int。
哪一种更好,还是仅仅是偏好?
a或b
Point point = new Point(5, 5);
int a = point.x;
int b = (int) point.getX();我读过Java,getX()和point.x之间的区别,但它没有真正回答我的问题。或者至少我不明白答案。
发布于 2015-05-13 16:08:33
getX()和getY()类的Point函数返回一个double,因为这是它的父类(Point2D)所需要的。因此,它的所有子类(Point2D.Double和Point2D.Float)都将在相同的地方工作。
在这种情况下,直接使用point.x和point.y而不是getter函数可能是好的,因为Point类是一个似乎没有人喜欢的奇怪的角落情况--大多数人认为它应该是不变的,或者至少最好隐藏它的值。
如果您害怕代码评审之类的东西,只需在其中添加一个注释,解释为什么直接访问x和y变量。
tl博士:这只是个人喜好。
发布于 2015-05-13 16:01:54
总之,我认为这个类的设计人员不想再创建两个函数getXAsInteger和getYAsInteger,但是仍然可以选择获取基本的整数值,而不是转换为double的值。因此,在这种情况下设置一个异常并直接使用这些字段。
发布于 2015-05-13 16:07:35
由于点类的getter方法的double返回类型只是通过继承使其兼容,而getX()不只是返回值就什么都不做。
所以,这只是你的喜好,我想。
但就像使用point.x (为什么要进行不必要的转换?)在这种情况下,虽然我喜欢总是使用getter/setter。
https://stackoverflow.com/questions/30219925
复制相似问题