有个问题百思不得其解

有个问题百思不得其解

就是在调用对象属性的时候,为什么不直接调用,而是要用get对象属性的方法来调用?难道仅仅就是为了检验初始化吗?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
吃吃吃鱼的猫 2019-06-03 10:44:14

同学你好,这样做的目的有以下好处:

1  将数据与行为分离,也就是java的面向对象的概念。

对象就是属性+行为,封装就是把对象的私有属性封装起来,只有通过自己公开的行为去改变(获得)对象内部的私有属性信息,而那些public的方法正是面向其他对象的接口,只有通过接口去改变(获得)对象的私有属性。
2  安全性 

设想,你有一个Person类代表一个人,Person有一个char类型的sex字段表示性别,理论上,sex只接受两个值, 'M '和 'F ',但如果你把sex字段设为public,你很难限制你的用户只给它赋 'M '或 'F '值。将sex设为private,再用setSex()来设置性别,你就完全可以控制这种行为了。而且你还可以控制只能get不能set,或相反,但如果是public就不行了。别外有一点属性我们可能并不希望其他用户对我们的属性进行写操作,这个时候,可以直接不写setX方法。这就是只读属性了。
3  编码规范性 
4  稳定性
5  可扩展性

对于方法,可以对属性值进行检验。
6  便于维护

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师