一)对象的初始化
alloc 和init方法都是继承自NSObject,不需重写。
如果需要在类对象初始化时做一些工作,可以重载init方法达到目的。
self=[super init];
if(self){
//初始化代码
}
为什么会有这句?这一句方法首先会调用父类的初始化方法。执行父类的初始化方法,使得继承的实例变量能够正常初始化。必须将父类的init方法的执行结果赋值给self,因为初始化过程改变了对象在内存中的位置(意味着引用将要改变)。这句话我也不懂。。。。。。
如果父类的初始化过程成功,返回的值将是非空。
二)工厂方法 ,也叫类方法,顾名思义,也就是类的方法。对于类的实例,就具有了实例方法。实例方法总是可以直接访问他的实例变量的,然而,类方法则不能,因为他只处理本身,并不处理类实例。
三)为什么声明的对象都是*开头?表明这只是一个引用(或指针);变量实际上并不存储对象的值,而是存储了一个引用(其实是内存地址),表明对象数据在内存中的位置。
声明的对象,他的值是未定义的,也没有默认值。
实例方法总是可以直接访问他的实例变量的,然而从别的位置是不能够直接访问这些实例变量,需要通过方法,这就是所谓的数据封装。
这也是属性这个关键字的简便之处。