看官们,我们在前面章回中介绍了如何使用类来封装属性和方法,封装完成后就可以使用类来创建对象,然而如何去创建对象呢?这就是本章回中将要介绍的内容:类对象的初始化。
看官们,我们首先给出创建类对象的模板:
Class *instance = [[Class alloc] init].
接下来我们解释一下模板中的各项内容的含义。
Class表示具体的类名,通过它定义了名叫instance的指针。等号右边有两层中括号,我们从里到外依次来分析。Class alloc表示为Class这个类分配一块内存空间,此时Class类的对象就诞生了,接着使用该对象调用init方法完成对象的初始化操作,最后把该对象赋值给instance指针,以后我们就可以使用该指针来访问Class这个类的对象了。
这里再说一下init方法,它是完成初始化操作的关键,我们在实现类时可以把初始化的操作写在该方法中,如果没有做初始化操作,那么编译器默认把所有属性初始化为0或者nil。
我们在第十三章回的代码中演示过init方法的实现,如果大家忘记了可以回头去看看。此外,我们还可以扩展一下init方法,为它添加一些参数,这样可以依据参数来初始化类的对象,比如IOS提供的接口中经常有类似"initWith:"这样的初始化方法.
到目前为止,与类封装相关的内容就演示完了,下面是所有代码编译运行的结果,请大家参考:
2020-11-08 16:00:58.240 ex.out[1402:62784] name = no name
2020-11-08 16:00:58.241 ex.out[1402:62784] size = 0
2020-11-08 16:00:58.241 ex.out[1402:62784] test = 0
2020-11-08 16:00:58.241 ex.out[1402:62784] name apple
2020-11-08 16:00:58.241 ex.out[1402:62784] name Huawei
2020-11-08 16:00:58.241 ex.out[1402:62784] make call
2020-11-08 16:00:58.241 ex.out[1402:62784] connect 1, and 2
2020-11-08 16:00:58.241 ex.out[1402:62784] takePicture
最后,我们对本章回的内容做一个总结:
- 1.类的对象通过alloc来创建,然后使用init方法进行初始化;
- 2.对象初始化的操作需要在init方法中完成;
- 3.可以扩展init方法,通过参数来初始化类的对象;
看官们,欲知后事如何且听下回分解!