对Java封装的一个理解
真正的封装是什么意思
- 封装意味着对象的属性值是不能够改变的。
- 一旦需要改变一个对象的值,那么就违背了封装的原则。
封装的属性理解
- 使用setter方法是因为想修改它的值。
- 使用getter方法是因为想获取它的值。
- 所以,当我设计一个属性的时候,我需要思考此属性的值我要不要修改。如果需要修改,我们就需要生成属性的setter方法。只是修改的不是原来对象的值,而是我们深拷贝这个对象,并在这个副本对象上进行操作,这样就保证了原来的对象的封装性。
保证封装性的一个做法
因为修改值是一定会发生的,所以我修改它的一份深拷贝的值,这样保证原来的对象没有任何变化,以此来保证真正的封装性。
Java是怎样保证值不变的
- 使用final关键字修饰属性。
- 为属性提供getter方法,不提供setter方法。
小结
- 封装说的是对象的属性值是不可变的。
- 采用深拷贝方式来保证封装性。
- 为属性只设置getter方法来保证封装性。
- 采用final修饰属性来保证封装性。
还没有评论,来说两句吧...