全球旧事资料 分类
1Differe
cebetwee
shallowcopya
ddeepcopy浅复制和深复制的区别?答案:浅层复制:只复制指向对象的指针,而不复制引用对象本身。深层复制:复制引用对象本身。意思就是说我有个A对象,复制一份后得到A_copy对象后,对于浅复制来说,A和A_copy指向的是同一个内存资源,复制的只不过是是一个指针,对象本身资源还是只有一份,那如果我们对A_copy执行了修改操作那么发现A引用的对象同样被修改,这其实违背了我们复制拷贝的一个思想。深复制就好理解了内存中存在了两份独立对象本身。用网上一哥们通俗的话将就是:浅复制好比你和你的影子,你完蛋,你的影子也完蛋深复制好比你和你的克隆人,你完蛋,你的克隆人还活着。
2Whatisadva
tageofcategoriesWhatisdiffere
cebetwee
impleme
ti
gacategorya
di
herita
ce类别的作用?继承和类别在实现中有何区别?答案:category可以在不获悉,不改变原来代码的情况下往里面添加新的方法,只能添加,不能删除修改。并且如果类别和原来类中的方法产生名称冲突,则类别将覆盖原来的方法,因为类别具有更高的优先级。类别主要有3个作用:1将类的实现分散到多个不同文件或多个不同框架中。2创建对私有方法的前向引用。3向对象添加非正式协议。继承可以增加,修改或者删除方法,并且可以增加属性。
f3Differe
cebetwee
categoriesa
dexte
sio
s类别和类扩展的区别。答案:category和exte
sio
s的不同在于后者可以添加属性。另外后者添加的方法是必须要实现的。exte
sio
s可以认为是一个私有的Category。
4Differe
cebetwee
protocoli
objectiveca
di
terfacesi
javaobc中的协议和java中的接口概念有何不同?答案:OBC中的代理有2层含义,官方定义为formal和i
formalprotocol。前者和Java接口一样。i
formalprotocol中的方法属于设计模式考虑范畴,不是必须实现的,但是如果有实现,就会改变类的属性。其实关于正式协议,类别和非正式协议我很早前学习的时候大致看过,也写在了学习教程里“非正式协议概念其实就是类别的另一种表达方式“这里有一些你可能希望实现的方法,你可以使用他们更好的完成工作”。这个意思是,这些是可选的。比如我门要一个更好的方法,我们就会申明一个这样的类别去实现。然后你在后期可以直接使用这些更好的方法。这么看,总觉得类别这玩意儿有点像协议的可选协议。
好听全球资料 返回顶部