object-c封装:
对于oc中的对象来说,直接将属性暴露在外然后使用->是不规范的,通常都需要通过提供的get,set方法来进行读取操作。
并且,oc中对象的属性,默认就是保护类型的,也就是说,本来在其他类中就不能访问他们,所以需要通过提供set和get方法来进行操作。
调用方法时,尽量使用别人
----------------------------------------------------------------
oc类与c语言struct的联系:
都可以通过->来直接操作字段。
默认权限不一致。
-------------------------------------------------------------------
不过,即便使用private修饰属性,也可以通过反射技术来获取其值。
----------------------------------------------------------------------------------------------------
构造函数与析构函数:
oc中的构造函数其实并没有强制要求以init开头,使用其他名称也是完全可以的,构造函数就是一个普通函数,只不过实现特殊功能。
析构函数是dealloc,名称固定。
dealloc不要去人为的调用它,而是使用release,当计数器为0的时刻,系统会自动调用其dealloc方法。
---------------------------------------------------------------------------------------------------------
类方法,initalize:
对于一个类,只会运行一次。就算产生多个对象,也只在第一次产生对象时调用它。
--------------------------------------------------------------------------------------------------
self与super指针:
对象中调用一个方法的时刻必须要一个对象,不能像c语言中那样下面的函数可以直接调用上面的方法。
类方法也就是+方法中也可以有self,但是其含义与-方法中不一样。(这就是对象不能调用+方法的原因,会 引起冲突)
:+方法中self=类,所以可以用【【self alloc】init】来实例化一个当前类的对象。【Person person】中的person方法就是利用这种方式实现的,
可以用来实例化对象。此时self class 就是self,均为Person类。
其他类的实例化方法也是一样的方式实现。
-----------------------------
super也就是基类对象的引用。
-------------------------
在调用函数时刻有两个暗含的参数,一个是self,代表当前对象,另外一个就是_cmd,代表的就是当前的函数,是SEL类型的。
---------------------------------------------------------------------------------------------------------------------
catagory怎么实现函数私有化与oc中的unichar到底是什么类型(??)
------------------------------------------------------------------------------------------------