目前为止,我们设计的类中的内容全都用的 访问修饰符,所谓 public 就是公共,外部使用者在任意位置都可以任意访问和操作。
在实际问题域中,对象的属性值其实鲜有公共的。仔细想想,别人可以肆意修改你的姓名、年龄、性别吗?你的成绩可以被任意改为负数吗?
数据的有效性和安全性是很重要的,所以在实际开发中我们通常只将可访问的常量设置为 public 。
所以修改器(setter)和访问器(getter)就派上用场了。搭配我们之前提到过的修饰符 private 私有,控制某些属性只能在这个类内部访问。
从名称上就能够看出这两个方法的用途:get 获取,加上 er 表示获取器;set 设置,加上 er 表示设置器。所以访问器方法 getter() 和修改器方法 setter() 就是为了让外部使用在类中被设计为 private 的属性的。
语法:
从这个例子可以看出,未来都会采用 private + setter/getter 的方式书写,让数据更加安全。我们也可以为某个 private 属性单独提供 get 或 set 让该属性只被访问或只修改。
这种开发方式还能控制传入的值合法性,进行值的有效性的管控,比如年龄、分数不可为负,将验证有效数据的控制在一处,而不是散布在每一次赋值的地方。
为了隐私性,不直接暴露类内部对数据的存放形式。
getter setter 同样存在快捷生成方式 【右键 - 生成 - getter 和 setter 】
在 95 年的技术白皮书中提出,只有满足规范的类才能称为 java Bean。 java 是一门工程学的语言,最大的特点就是建立庞大的项目,所以标准是很重要的,所有框架、工具几乎都要书写 java 标准类,不满要求的根本不能在这些框架、工具中运行起来。
规范:
- 必须提供公共无参构造
- 必须为私有属性提供符合命名规则的 get/set 方法
- 必须实现 serializable 接口(通用数据保存、读取和传输的接口,当前不做讨论)
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/java-jiao-cheng/5644.html