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

Java Setter和Getter

上官斌
2023-03-14
问题内容

始终建议使用getter /
setter访问私有变量。为什么最好将它们声明为public并对其进行访问。无论如何,我们正在使用getter和setter访问它?


问题答案:

@mre的回答非常好,您的问题很重要。总结一下:您将对象的字段设置为私有,以控制其他对象使用它的方式。您的对象使用setter来:

  • 限制和验证传递给设置器的数据
  • 隐藏其内部数据结构(服务对其他对象感兴趣,而不是服务的构建方式,这还可以包括优化)
  • 在每个状态下保持其完整性(如果需要,可以更改其他字段)

它将使用吸气剂

  • 根据客户的要求格式化输出中的数据
  • 控制服务序列(例如,仅当建立连接后,它将提供数据)

欢迎来到OO编程的美好世界以及结构化编程的魔力。

斯特凡



 类似资料:
  • 我对Lombok和JSTL如何处理getters和setters有点困惑。我有以下@data类: 并且我可以访问.jsp中的私有布尔值,如下所示: 同时我也可以将私有布尔值声明为 并以相同的方式在JSTL中访问它。但是,以下代码将引发PropertyNotFoundException: 谁能澄清一下我在同时使用JSTL和Lombok时应该使用什么命名约定吗?提前道谢!

  • 我有一个基类,它使用php魔术方法__get和__set,可以修改扩展类中的私有属性。然后,我为相关的私有属性构建setter getter函数(类似于http://www.beaconfire-red.com/epic-stufle/better-getters-and-setters-php)

  • 问题内容: 关于它们有很多传说。我想知道真相。以下两个示例之间有什么区别? 问题答案: 不确定从何处获得传说,但: 提交按钮 与: IE6将在标记之间提交此按钮的所有文本,其他浏览器将仅提交值。使用可使您在按钮的设计上享有更大的布局自由度。从各种意图和目的看,它乍一看似乎很棒,但是各种浏览器怪癖使它有时很难使用。 在您的示例中,IE6将发送到服务器,而其他大多数浏览器将不发送任何内容。要使其跨浏览

  • 什么区别以及如何正确重写代码?

  • 我写了我自己的AST转换,它应该生成getter和setter方法(在这里创建getter方法)。但是他们不工作,不能理解原因。 使用属性创建注释 我的AST转换代码应该为注释字段创建getter方法 注释检查 在哪个地方我犯了错误? 运行结果: 线程“main”groovy中出现异常。lang.MissingMethodException:没有方法ua的签名。家插科打诨。用法实例getMyCou