我们有两种不同的(可能更多)方式来访问x
变量:
example.x
和example.getX()
我认为首先是非常快,但在某些情况下我们不能使用它(例如,当我们处理窗口事件时,e.getX()
)。
问题是:我应该在任何地方只使用example.getX()
代替example.x
,还是这些方法的组合更好?
答案 0 :(得分:2)
这取决于。大多数人都认为在面向对象设计中使用封装是一种很好的做法。这意味着应用程序的某些部分只能以非常受控的方式访问所需的属性 - 在这种情况下,您将通过使用getter和setter来保护访问和分配。
另一方面,如果您在同一个类中设置字段,则可以使用点访问,只要您没有执行重要操作的智能设置器即可。
请注意,为了将类视为Java Bean,必须为每个字段(以及其他内容)提供公共setter / getter。当然,这仅适用于Java,所以在语言不可知的背景下考虑问题时,这并不是真正的原因。