gpt4 book ai didi

java - 为什么使用 setter 和 getter 方法

转载 作者:行者123 更新时间:2023-12-02 07:56:35 25 4
gpt4 key购买 nike

Possible Duplicate:
Why use getters and setters?

我知道这很微不足道。但为什么我们定义了 private 然后我们使用 getter 和 setter。这更像是为了防止程序员在使用私有(private)变量或方法时犯错误吗?或者是出于安全原因。如果出于安全原因,那么设置 getter 或 setter 的意义何在?我知道我们可以在 getter 和 setter 内部进行限制,但这些 if 子句主要是为了防止错误,而不是隐私限制。例如。我们通常不会说对于这些成员使用 if 子句限制对此方法的访问。

谢谢。

最佳答案

不假思索地为每个变量创建 getX()setX() 方法的做法是不好。正如您所观察到的,这基本上毫无意义。

不加思考的部分才是糟糕的。方法比公开的变量要好得多,因为正如您所观察到的,您可以控制底层数据的访问方式。如果您思考您正在做的事情,并适本地应用修改器和访问器,它们就是一个很棒的工具:

  • 您可以限制客户端只能读取变量,而不能写入变量。
  • 您可以将整数值限制为仅正值(例如)。
  • 您可以确保一个变量始终等于另一个变量值的二分之一(例如)。
  • 您可以确保每当变量值发生更改时,都会发送一个事件来通知其他客户端。
  • 您可以更改基础变量的数据类型,在公共(public)方法中执行转换,并且不会破坏任何客户端。
  • 您可以将对象转换为远程客户端以获得同一对象的服务器端版本,并且客户端代码不会更改。
  • 您可以使用synchronized 访问器确保跨线程的严格内存排序。

这些只是您可以使用修改器和访问器执行的一些操作。通过使用它们,您可以使您的软件易于更改且易于维护。

关于java - 为什么使用 setter 和 getter 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11605930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com