黑马程序员_OC对象的构造

来源:互联网 发布:金博软件 编辑:程序博客网 时间:2024/05/16 14:29

对象的构造

在上一篇blog中,我提取了孟岩的一些观点,说明对象范式(面向对象)的一些基本观点。我认为面向对象的核心就是:如何管理对象以及如何实现对象间的消息传递。现在主流的面向对象语言通过类来实现对象的构造,通过函数调用来实现对象间的消息传递。今天我主要想谈一下,在OC中对象的构造。

一、类、对象

类,在我看来像是蓝图,我们通过类来建造对象这座大厦。类决定了一个对象是什么样子以及能够有些什么功能,类是对对象的一个抽象。
如何写一个类?我们可以从两个方面入手:1、类所描述的对象的基本属性。如:一个学生类,应该能描述学生的基本情况,学号、班级等等。2、类说描述的对象的行为。如:一个学生类,应该能描述学生的基本行为,学习、吃房、休闲等。
在OC中一个类包括:对象的属性和方法

二、类的构造方法

类是通过构造方法完成对象的构造。OC中一个对象的构造分成三部:
1、在堆区申请一片内存用于存放该对象
2、对对象进行初始化
3、返回该对象的内存地址
默认构造函数:new与 alloc init
 
#import <Foundation/Foundation.h>#import "Person.h"#import "Dog.h"int main(int argc, const char * argv[]) {    @autoreleasepool {        //创建人对象        //默认构造函数        Person *lele=[Person new];                [lele release];            }    return 0;}

通过new创建对象
//main.m#import <Foundation/Foundation.h>#import "Person.h"#import "Dog.h"int main(int argc, const char * argv[]) {    @autoreleasepool {        //创建人对象        //默认构造函数        Person *lele=[[Person alloc]init];                [lele release];            }    return 0;}

通过alloc init创建对象。
new可以认为是alloc init的简写形式。alloc init可以使用非默认的初始化方法,initWithAge在创建对象的同时,给对象的age属性初始化。

三、对象的销毁

在OC中对象的销毁,主要有MRC, ARC两种模式,  MRC通过手动的调用release方法或者调用autorelease方法将对象加入自动释放池,ARC模式下只要对象没有强指针指向就会自动销毁。








0 0
原创粉丝点击