可能重复:
为什么要使用 getter 和 setter?
我正在阅读 Java for Dummies 2nd edition,它说最好为类的变量定义访问器方法,而不是让它们public
. 真的吗?
可能重复:
为什么要使用 getter 和 setter?
我正在阅读 Java for Dummies 2nd edition,它说最好为类的变量定义访问器方法,而不是让它们public
. 真的吗?
是的,这是一个约定。
它允许您控制其他类如何访问成员(通常是私有的)。例如,您可以从返回和设置值的基本 get/set 开始。但也许在项目的后期你会想要添加更多的控制。在这种情况下,您只需更改 get/set 方法,而不是重构所有项目。
如果可能的话,我什至会说最好不要使用访问器方法。让班级在自己的状态下工作,而不是将其公开给另一个班级使用。
如果您确实必须公开状态,访问器方法使您有机会返回状态的副本而不是实际的对象。这样调用类将无法从外部修改状态,避免了不变量被破坏的问题。
这是真的!
在 Java 中,通常的做法是将类变量声明为私有,然后编写公共访问器和转换器方法来在类外控制它们。
制作访问器方法通常很好,以规范任何其他类(和任何人)可以使用的数据。
特别是在大型项目中,您希望其他类只使用该类中众多变量中的一小部分,因此您只需创建几个 getter 方法。
另一方面,它使代码更清晰,更容易看到正在发生的事情。第三,使用错误的变量很难在程序中创建自己的错误,因为在其他类中可供选择的变量较少。