类、对象和方法

一)对象的初始化

alloc 和init方法都是继承自NSObject,不需重写。

如果需要在类对象初始化时做一些工作,可以重载init方法达到目的。

self=[super init];

if(self){

//初始化代码

为什么会有这句?这一句方法首先会调用父类的初始化方法。执行父类的初始化方法,使得继承的实例变量能够正常初始化。必须将父类的init方法的执行结果赋值给self,因为初始化过程改变了对象在内存中的位置(意味着引用将要改变)。这句话我也不懂。。。。。。

如果父类的初始化过程成功,返回的值将是非空。

 

 二)工厂方法 ,也叫类方法,顾名思义,也就是类的方法。对于类的实例,就具有了实例方法。实例方法总是可以直接访问他的实例变量的,然而,类方法则不能,因为他只处理本身,并不处理类实例。

 

三)为什么声明的对象都是*开头?表明这只是一个引用(或指针);变量实际上并不存储对象的值,而是存储了一个引用(其实是内存地址),表明对象数据在内存中的位置。

声明的对象,他的值是未定义的,也没有默认值。

实例方法总是可以直接访问他的实例变量的,然而从别的位置是不能够直接访问这些实例变量,需要通过方法,这就是所谓的数据封装。

这也是属性这个关键字的简便之处。

posted on 2015-07-20 21:35  代码改变宇宙  阅读(126)  评论(0编辑  收藏  举报