C没有类
对象的说法很时髦
右走是C++,这个大众都熟悉它
左走就是objective-c,躲在僻静僻静的麦金塔
本是同根生的C
求同存异标新立异且听一一细分清
对象的C
是不同的C
类的处理与众不同重点要区分
不重复是我的口头禅
[@begincommand] | @end就是我的指示
@interface classname 声明类
@implementation classname 实现类
@protocol interfacename 声明接口
就是这么简单,你的一定要明白
我先声明对成员变量和方法的关系有远近
关系远近 public / protected / private 来区分
静态成员变量请不要放在此
前面拴着绳子置于类的变量列表外
加号就是静态函数莫怪
我要一眼叫出名,包括函数名和参数名
函数名和参数名之间用:分隔开
逗号其实不是我的爱
每个参数形式如 标签:(参数类型)参数名
你就能领悟其中的奥妙并在调用时喜爱
它们一律都是公之于众要好好的干活
就踢出头文件打入冷宫永世不能露面试试看
改则重载,不改就继承
所有的类最终都继承于NSObject
因为它给你创建自己生命的方法
不继承于NSObject的只能是接口protocol
它只有声明不用实现
这点和java很相似
当然类还有一些绝活可以让你开开眼
@interface CClassA(Category)|@end
@implementation CClassA (Category)|@end
就可以使用该Category中的方法
也可以动态的替换一个类
[CInheritClass poseAsClass: [CBaseClass class]];
@interface
CClassA(Category):
CBaseClass<IA,IB...>
加上静态
虚函数
所有特性和C++均可对应
这一特性编译类语言很少有
设计得当完全可以实现动态调用dll切换功能
类的定义和使用,也有点怪
创建很是别扭
CClassName* pA = [[CClassName alloc] init];
释放分为两种
自动释放声明后 [pA autorelease]; 以后可以不管
否则就必须配对 [pA release];
注意类的构造函数init可以捕获
调用成员方法用中括号
int nRtn = [pA method:param1];
而静态成员方法不需要对象 int nRtn = [CClassName method];
调用成员变量还是C格式
pA->m_nCount = 1;
所有的类,都可以对应一个id类型
用来引用一个对象
id
cur = sq;
或者用来引用一个对象指定的接口 id<IA> cur =
sq;
然后就可以调用该对象的方法和指定接口方法