为了账号安全,请及时绑定邮箱和手机立即绑定

违背类的封装,直接操作数据。感觉是一道挺经典的iOS面试题,没找到答案。会发生什么错误呢?

违背类的封装,直接操作数据。感觉是一道挺经典的iOS面试题,没找到答案。会发生什么错误呢?

不负相思意 2019-05-25 13:48:10
classInformation:NSObject{varphoneNum:String?varage:Int?init(phone:String,age:Int){self.phoneNum=phoneself.age=age}}classPerson:NSObject{varinfo:Informationvarname:Stringinit(name:String,info:Information){self.name=nameself.info=info}}varinfo=Information(phone:"123",age:5)varperson=Person(name:"deng",info:info)person.info.phoneNum="123"person.info.phoneNum="123"这句代码,会引发什么错误?编译过了,项目跑起来,没事。我觉得,他直接操纵Information类的属性,违背了类的封装,应该是不能直接访问数据,应该要通过类暴露在外面的方法设置。面试上遇到的,感觉应该有更加深刻的原因。以前OC版的好像看到过,未仔细分析。
查看完整描述

2 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

这个问题语言无关,试想一下如果一个类有birthday和age两个属性,这两个属性是不是相关的,如果采用你上述的方法有什么问题?
                            
查看完整回答
反对 回复 2019-05-25
  • 2 回答
  • 0 关注
  • 402 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信