Java中为什么要使用赋值和取值这种方式访问属性呢?
在Java代码开发中,我们经常看见使用set,get关键字获取和设置属性,为什么不使用直接操作字段的方式呢?
下文将一一到来,如下所示:
下文将一一到来,如下所示:
这样编写代码主要是方便字段及属性封装
- 方便扩展,如:在属性中添加相应的判断和验证
- 隐藏属性的内部表示形式
- 将公共接口与更改隔离-在实现更改的同时允许公共接口保持不变,而不会影响现有的使用者
- 控制属性的生存期和内存管理(处置)语义-在非托管内存环境(如C ++或Objective-C)中尤其重要
- 为程序多增加逻辑及调试点,方便后续调试
- 与旨在针对属性获取程序/设置程序进行操作的库之间的改进的互操作性-我想到了模拟,序列化和WPF
- 可通过覆盖getter/setter方法,可使继承者修改属性行为的语义,并公开该属性
- 允许将getter/setter作为Lambda表达式而不是值传递
- getter和setter可分别设置其访问级别,使其对外拥有不同的权限,如get设置为public set设置为protected
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。