转载来自:http://www.cnblogs.com/caishuhua226/archive/2012/12/22/2829587.html
刚才在博客园看到一篇关于OC的语法小结的文章,感觉还好,就转载过来了。下面可以发现某些比较感兴趣的特点,是昨天没有发现的。
比如:
1,类的所有函数都是@public的,如果需要将该方法修改为类似C++那样的private的话,一共有两种方法:一个就是将其在另外一个函数中调用,
从而实现封装。另外一个方法是就是使用那个catalog的关键字。
对于成员的来说,缺省状态下都是@protected的,也可以显示设置为@private。访问的权限与C++一样。
2,类的函数都是虚函数,都可以被子类重写的,而不用像C++那样显示生命为virtual。因此在子类的函数调用基类的相同的方法需要使用super:[super fun];
同样地,在OC也有类似C++那样的this指针,那么它的作用就不用说了。
3,函数重载。OC中的重载像博文说得那样,不是严格类型的重载。两个函数之间需要不同的标签才能重载,否则就出现错误了!
/***************************************************************************分割线****************************************************************************************************************/
1、面向对象概述
比较项目 OC
基类 NSObject
单继承 是单继承
接口 支持接口(协议)@protocol
多继承 使用接口来实现多继承
多态 支持多态
抽象类 支持抽象类
异常处理 简单的异常处理@try @catch @finally
虚函数 所有的函数都是虚函数
头文件 #import
2、OC有别于C/C++的一些比较
1、BOOL YES NO
在oc中布尔类型是BOOL,布尔值是yes,no
2、id类型
O-C中每个目标都可以表达为id类型,可以认为是NSObject*或者是void*
3、nil
nil表示null,表示一个目标指针
3、类声明放到.h文件里,类的实现放到.m文件里。
类的声明:@interface @end
类的实现:@implementation @end
4、#import "xxxx.h"包含头文件
5、创建/销毁OC对象
创建对象
Dog *dog=[Dog alloc];
初始化构造函数
[dog init];
销毁对象
[dog release];
6、字段定义
变量申明:@public @protected @private
O-C中变量必须定义在类{}之间的地方
O-C缺省是@protected
O-C里面的函数全是@public类型 没有其他的类型(用另外的方式实现private化)
7、类的申明
O-C中类的申明必须带*号,这里的*既表示指针也表示引用,例如:Dog *mydog;这里的*既表示真正的指针,也表示引用,可以通过mydog→dog或者mydog.dog这些方法来访问。
8、函数调用对别
9、函数重载
O-C不是严格类型的函数重载
就是说O-C的函数重载前提是方法名相同,如果想重载必须有不同的标签
10、Message消息机制
O-C用[object message]或者object.message来发送消息,所谓的消息就是我们在C语言当中所说的函数。
11、函数作用域的申明
oc在.h头文件定义的所有函数都是public类型,如果想进行私有化可以有2种方法
1、直接将函数写在.m文件中;
2、OC通过Categories来实现函数的 私有化;