gpt4 book ai didi

java - 为什么getter和setter方法在java中很重要?

转载 作者:IT老高 更新时间:2023-10-28 20:52:45 25 4
gpt4 key购买 nike

我被教导要始终使用 getter 和 setter。但是,我不知道这些方法的优缺点,因为通过实现它们,我们既暴露了数据又隐藏了它。

我对此有点困惑。任何人都可以就我们为什么使用 getter/setter 以及优势是什么提供一些适当的建议吗?

最佳答案

在封装方面,基本的“具有公共(public) getter 和 setter 的私有(private)字段,除了返回或设置字段之外什么都不做”模式确实完全没有意义,只是它让您有机会在不更改 API 的情况下稍后更改它。

所以不要不假思索地使用这种模式。仔细考虑您实际需要哪些操作。

getter 和 setter 的真正意义在于,您应该只在适当的地方使用它们,并且它们可以做的不仅仅是获取和设置字段。

  • 你只能有一个 setter/getter 。然后该属性是只读的。这实际上应该是最常见的情况。
  • 您可以只有一个 setter,使属性可配置,但传达任何其他内容都不应该依赖于它的值
  • getter 可以从多个字段计算一个值,而不是返回一个字段。
  • getter 可以制作防御性副本
  • getter 可以懒惰地执行昂贵的 fetch 操作并使用字段来缓存值
  • setter 可以进行完整性检查并抛出 IllegalArgumentException
  • setter 可以通知监听器值的变化
  • 您可以使用一个 setter 将多个字段设置在一起,因为它们在概念上属于一起。这不符合 JavaBeans 规范,因此如果您依赖需要 JavaBeans 的框架或工具,请不要这样做。否则,这是一个有用的选择。

所有这些都是隐藏在简单的“getter and setter”接口(interface)后面的实现细节。这就是封装的意义所在。

关于java - 为什么getter和setter方法在java中很重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8830772/

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