当前位置: 首页 > 面试题库 >

Java中的getter / setter方法有什么用?

黄弘新
2023-03-14
问题内容

我看到成员变量被赋予了私有修饰符,然后使用getter / setter方法只是为了设置和获取变量的值(以标准化的名义)。

然后为什么不将变量本身公开(除了像spring框架这样的案例,该案例依赖于html" target="_blank">IOC的getter / setter方法)。它达到目的。

在C#中,我看到成员变量的大小写为getter / setter。为什么不将变量本身公开?


问题答案:

为了从一开始就获得 稳定的API。Java专家认为,如果稍后再设置或获取实例成员时,您可能希望有一些额外的逻辑,那么您就不想通过用公共方法替换公共字段来 破坏现有的API。这是Java中的主要原因。

在C#情况下,由于 二进制接口兼容性,因此使用公共属性代替公共字段。

因此,这就是 封装 一些逻辑,同时仍保留接口以供将来验证。



 类似资料:
  • 问题内容: 我这样做: 要么 我是Python的新手,所以我仍在探索语法,并且我想在此方面提供一些建议。 问题答案: 试试这个:Python属性 示例代码是:

  • 问题内容: 请原谅它的长度,但是这里有两个程序,两者完全相同,但是一个有一个没有setter,getter和构造函数的程序。 我之前已经学过一个基本的C ++类,并且不记得其中的任何一个,而现在我还没有看到它们的意义,如果有人可以用拉面的术语来解释它们的话,我将不胜感激。目前,它们似乎不过是浪费空间,以使我的代码看起来更长,但是老师说它们很重要(到目前为止,就是这样)。 提前致谢!现在是代码:Mi

  • e(fx)clipse插件为Eclipse提供了一个generate命令,该命令将生成如上所述的JavaFX getter/setter。IntelliJ IDEA有类似的功能吗?

  • 假设我有一个类Things,它包含许多不同的实例变量。我为它们分别创建了单独的setter和getter方法。如果我想创建另一个存储things'class'的class2,那么为things类中的实例变量创建额外的setter和getter方法是很好的编码方法。另外,假设我有另一个使用class2的class3,那么重复setter和getter方法会产生高耦合吗?

  • 问题内容: 我读过一些书,说为诸如和的变量创建setter和getter很好。例如: 但这有什么区别? 和 如果二传手和消气手更好,您能给我解释一下实际问题吗? 问题答案: 多个原因: 如果您允许像 shape.x = 90 那么您将来将无法添加任何逻辑来验证数据。 如果x不能小于100,就不能这样做,但是如果您有像 您不能在写入逻辑上添加诸如复制之类的内容(请参见CopyOnWriteArray

  • 据我所知,封装对外部人员隐藏了您的数据成员,并且只允许它使用相同类的方法访问。因此他们无法向外部人员显示您的个人数据。遵循这是真的, 在这里,您的金额变量不会与使用private的外部用户共享,他们也不知道您使用的变量名称。 但在类似的情况下,我们还提供了访问它们的getter/setter,那么封装如何能够从外部安全地进行呢? 这意味着getter或setter方法很可能具有相同的模式,而局外人