源于:http://www.cnblogs.com/wendingding/p/3704518.html
源博文写的超级棒,向大神学习,此处只是部分摘要,为学习笔记。
一、简介
OC语言在C语言的基础上,增加了一层最小的面向对象语法,完全兼容C语言,在OC代码中,可以混用C,甚至是C++代码。
可以使用OC开发MAC OSX平台和IOS平台的应用程序。
拓展名:C语言-.c OC语言.-m 兼容C++.-mm
二、开发过程
#import预处理指令有两个作用:
1. 与#include一样,拷贝文件内容 。
2. 可以自动防止文件的内容被重复拷贝。
程序编译连接过程:
源文件(.m)---(编译)---->目标文件(.0)-----(链接)---->可执行文件(.out)
运行过程如下:
(1)编写OC源文件 .m .c
(2)编译文件 cc -c xx.m xxx.c
(3)链接 cc xx.o xxx.o -framework Foundation
(4)运行 ./a.out
三、面向对象
OC语言是面向对象的,c语言是面向过程的,
面向对象和面向过程只是解决问题的两种思考方式,
面向过程关注的是解决问题涉及的步骤,
面向对象关注的是设计能够实现解决问题所需功能的类。
术语:OO面向对象、OOP面向对象编程
四、类
1. 类概述
类的设计只关注三个东西:类名、属性和方法。
在OC中,对象对方法的调用称为消息机制,即向既定的对象发送了什么消息。
2. 简单内存分析
类创建对象,每个对象在内存中都占据一定的存储空间,每个对象都有一份属于自己的单独的成员变量,
所有的对象公用类的成员方法,方法在整个内存中只有一份,
类本身在内存中占据一份存储空间,类的方法存储于此。
每个对象内部都默认有一个isa指针指向这个对象所使用的类。
[p eat];表示给p所指向的对象发送一条eat消息,调用对象的eat方法,此时对象会顺着内部的isa指针找到存储于类中的方法,执行。
isa是对象中的隐藏指针,指向创建这个对象的类。