IOS学习笔记二(指定初始化方法之我见)

先看《IOS编程》一书中对指定初始化方法是如何阐述的,指定初始化方法要确保对象的每一个实例变量都处在一个有效的状态。看到这里我们不仅想到C++中的默认构造函数,但是从名字上又能看出它们并不完全相同,一个要指定(由谁指定?)另一个是默认。

下面让我们回想一下C++中什么是默认构造函数。默认构造函数(default constructor)就是在没有显式提供初始化式时调用的构造函数。它由不带参数的构造函数,或者为所有的形参提供默认实参的构造函数定义。因为默认构造函数可以不带参数,所以它无法保证对象的每一个实例变量都处于有效的状态。这个才是指定初始化方法与默认构造函数的区别!有关默认构造函数的进一步思考参见http://blog.csdn.net/hankai1024/article/details/7947989。

让我们再思考一个问题,既然指定初始化方法可以保证对象的每一个实例都处在一个有效的状态,那是不是只需要一个指定初始化方法就行了呢?显然不是,首先从名字上就可以看出来,指定意味着从很多中选择一个,所以肯定会有其他初始化方法。实际上指定初始化方法的参数通常会和最重要的、最常见的实例变量相对应。其他的初始化方法为了保证对象的每一个实例变量处在有效状态,会在内部调用指定初始化方法以达到目的,这样就形成了一个初始化方法链。

关于指定初始化方法就写到这里,有不足的地方欢迎大家批评指确!转载请注明出处!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值