java - 公共访问与访问器方法

时间:2012-05-27 18:58:38

标签: java encapsulation

  

可能重复:
  Why use getters and setters?

我正在阅读Java for Dummies第二版,它说最好为类的变量定义访问器方法,而不是让它们public。这是真的吗?

6 个答案:

答案 0 :(得分:3)

定义访问器方法可以提供更大的灵活性。例如,您可以使public可读,但只能private可写。

Here's a Skeet answer to this particular question。他建议总是将你的领域变为私人

答案 1 :(得分:1)

是的,这是一个惯例。

它允许您控制其他类如何访问成员(通常是私有的)。例如,您可以从返回的基本get / set开始并设置值。但也许在项目的后期你会想要添加更多的控制权。在这种情况下,您只需要更改get / set方法,而不是折射所有项目。

答案 2 :(得分:1)

我甚至可以说,如果可能的话,最好不要使用访问器方法。让类在自己的状态下工作,而不是将它公开给另一个类来使用。

如果必须公开状态,则访问器方法使您有机会返回状态的副本而不是实际的对象。这样调用类就无法从外部修改状态,从而避免了不变量被破坏的问题。

答案 3 :(得分:0)

这是真的!

在Java中,通常的做法是将类变量声明为private,然后编写public accessor和mutuator方法来控制它们在类之外。

答案 4 :(得分:0)

制作访问器方法通常很好,以规范任何其他类(和任何人)可以使用的数据。

特别是在大型项目中,您希望其他类只使用类中的许多变量中的一些,因此您只需制作一些getter方法。

另一方面,它使代码更清晰,更容易看到发生了什么。第三,使用错误的变量在程序中创建自己的错误比较困难,因为在其他类中,可供选择的变量较少。

答案 5 :(得分:0)

我建议阅读面向对象编程哲学:

wikipedia

当您定义访问器时,您可以在那里写一些额外的逻辑来保护对象的状态。