3.1间接
1).含义:不在代码中直接使用某个值,而是使用指向该值的指针。
2).基本变量就是间接的一种实际应用。而文件是另一种间接的实例。
3).本质:告诉我们从哪里获得需要的数据
3.2 在面向对象的编程中使用间接
3.2.1 过程式编程
1).在过程式编程中数据通常保存在简单的结构中(例如C的struct元素),还有一些保存在复杂的机构中,例如链表和树
2).中心:函数是过程是编程的中心,你决定使用什么样的函数,然后调用那些函数,传递其需要的数据
3).Shapes-Procedural程序不是实际在屏幕上绘图,而是只输出一些与形状相关的文本。
注:面向对象的编程使得程序的扩展和维护变得很困难。
3.2.2 实现面向对象的编程
1).本质:面向对象编程是以程序为核心,函数为数据服务
2).id:代表identifier标识符,是一种泛型,用于表示任何种类的对象。类似java中的object。
注:在objective-c中方括号是用来通知某个对象该做什么,在objective-c中,通知对象执行某种操作称之为发送消息(调用方法)。
3.3 学习相关的术语
1).类:是一种结构,它表示对象的类型。建议开发者使用首字母大写类名
2).对象:是一种结构,包含值和指向其类的隐藏指针。
3).实例:“对象”的另一种称呼
4).消息:是对象可以执行的操作,用于通知对象要做什么。
5).方法:是为响应消息而运行的代码
6).方法调度程序:是OC中的一种机制,用于推测执行什么方法以响应某个特定的消息。
7).接口:是对象的类应该提供的特性的描述。
8).实现:是使得接口正常工作的代码。
3.4 Objective-C中的OOP
3.4.1 @interface部分
1).在Objective-C中使用@interface指把这种信息传递给编译器。
2).自定义一个Circle.h接口声明示例:
@interface Circle :NSObject{
…//定义实例变量
}
-(void)setColor : (ShapeColor) color;//方法声明
…
@end//完成Circle类的声明
注:“-”表明是Objective-C方法的声明,圆括号中是方法的返回类型,后面的是方法名字;方法中使用参数则需要冒号,否则不需要冒号。
3.4.2 @implementation部分
这是使得对象真正起作用的部分,也就是实现类的部分。
1).上面Circle类的实现:Circle.m
@implementationCircle
-(void) setColor:(ShapeColor)color{
· //实现部分
}
….//其他方法
@end
注:@implementation 是一个编译器指令,表明你将为某个类提供代码。
3.4.3 实例化对象
我们在定义完一个类时需要用到该类,实例化对象的过程就是内存分配和初始化过程,这些完成后就创建了一个新的对象实例。
例如创建Circle类的一个对象:Circle circle = [Circle new];
小结:
什么是面向对象的编程,以及面向对象编程的实现方式。
Objective-C中类的创建,以及方法的实现等。
创建一个信的对象,也就是对象如何实例化的方法,通过向类发送一个new消息来创建。