ObjC 里的对象和类
-
如何创建一个类?
typedef struct_People{
double height;
double weight;
} People;
void squat ( People *people );
void stand ( People *people );
-
在Obj-C里是如何定义这个类的?
@interface People : NSObject //类名People,继承自NSObject类
{
double height;
double weight;
}
- ( void ) squat;
- ( void ) stand;
@end
减号是对象方法,加号是类方法;
Objc里类也是一对象;
-
Obj-C是如何实现一个类的?
@implementation People
- ( void )squat {
height = 1.0;
}
- ( void ) stand {
height = 1.8;
}
@end
-
消息传递
Obj-C的对象是建立在堆上分配的结构体上的。所以需要用一个指针引用一个对象。
People *people;
触发一个对象的方法
[ people stand ];
-
用类创建一个对象
People *people = [ [ People alloc ] init ];
消息可以嵌套
从内到外依次触发消息
内层方法[ People alloc ];向People类里的对象发送alloc消息,会触发People类的alloc方法。
在ObjC里类本身也一个对象。
调用alloc方法的结果是:创建并返回一个People类的对象。
但是这个对象并没有初始化,只是完成了内存的分配,不能直接使用。
alloc方法是ObjC里所有类都有的方法,当你的类创建时就包含了这个类方法。
外层消息,[ people init ];
首先向新创建的对象people发送一个init消息,触发people对象调用init方法,会完成自身的初始化。
并且把初始化后的对象返回给引用这个对象的指针变量,这时就完成了一个新对象的创建。
init方法其实其实继承来的(暂时默认people对象本身就有init方法)
-
小结
如何创建一个类
对象的消息传递
如何创建一个对象
网友评论