黑马程序员_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
- 黑马程序员_OC对象的构造
- 黑马程序员_OC中对象的复制
- 黑马程序员_OC对象的描述
- 黑马程序员_OC面向对象的特性
- 黑马程序员_OC对象的属性
- 黑马程序员_OC对象的方法
- 黑马程序员_OC构造方法
- 黑马程序员_OC分类和构造方法
- 黑马程序员_OC语言的面向对象特性
- 黑马程序员_OC面向对象思想和类的创建
- 黑马程序员_OC面向对象的三大特性
- 黑马程序员_OC之类和对象
- 黑马程序员_OC语言的分类
- 黑马程序员_OC语言的Foundation 上
- 黑马程序员_OC语言的Foundation 下
- 黑马程序员_OC中类的创建
- 黑马程序员_OC的特有语法
- 黑马程序员_OC内存管理的总结
- 按钮长按功能
- solaris snoop 抓包
- CentOS7下Firewall防火墙配置用法详解
- Python itertools的使用
- Java基础学习总结(36)——Java注释模板
- 黑马程序员_OC对象的构造
- LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol
- IOS 遍历导航器视图是否包含某一个视图
- Cloud Design Pattern - Priority Queue Pattern(优先级队列模式)
- iOS解析html
- windows下创建线程函数CreateThread
- 表达式求值问题
- 触摸spine,触摸节点,等
- Unity3D--SDK接入一键打包APK