首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该使用Point.x还是Point.getX()?

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

Stack Overflow用户
提问于 2015-05-13 15:59:37
回答 4查看 9.7K关注 0票数 7

我有一个Point。我正试着让x成为int。如果我使用Point.x,我将获得x作为int。但是我的印象是,我应该尽可能地使用getter (为什么要使用getter和setter?)。Point.getX()的问题是它返回的是一个双,而不是一个int。

哪一种更好,还是仅仅是偏好?

ab

代码语言:javascript
复制
Point point = new Point(5, 5);
int a = point.x;
int b = (int) point.getX();

我读过Java,getX()和point.x之间的区别,但它没有真正回答我的问题。或者至少我不明白答案。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-05-13 16:08:33

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

在这种情况下,直接使用point.xpoint.y而不是getter函数可能是好的,因为Point类是一个似乎没有人喜欢的奇怪的角落情况--大多数人认为它应该是不变的,或者至少最好隐藏它的值。

如果您害怕代码评审之类的东西,只需在其中添加一个注释,解释为什么直接访问x和y变量。

tl博士:这只是个人喜好。

票数 4
EN

Stack Overflow用户

发布于 2015-05-13 16:01:54

总之,我认为这个类的设计人员不想再创建两个函数getXAsInteger和getYAsInteger,但是仍然可以选择获取基本的整数值,而不是转换为double的值。因此,在这种情况下设置一个异常并直接使用这些字段。

票数 1
EN

Stack Overflow用户

发布于 2015-05-13 16:07:35

由于点类的getter方法的double返回类型只是通过继承使其兼容,而getX()不只是返回值就什么都不做。

所以,这只是你的喜好,我想。

但就像使用point.x (为什么要进行不必要的转换?)在这种情况下,虽然我喜欢总是使用getter/setter。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30219925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档