程序员都知道C语言是一门面向过程的语言。所谓面向过程,就是用函数组织代码,用结构体组织数据的一种手段。它的缺点是数据和操作数据的代码是分离的,不是逻辑上的整体。
在iOS开发中,使用的开发语言是Objective-C语言,简称为OC。OC是C语言的超集,是面向对象的编程语言。所谓面向对象,就是将数据和操作数据的过程放在一个逻辑上的整体中,解决任何问题都是通过创建对象并给对象发消息的方式。这种编程更符合人的正常思维习惯,也更适合复杂应用程序的开发。
类:对象的蓝图和模版,是对象的抽象。
对象:对象时可以接受消息的单元。在任何场合,一切都是对象且独一无二,都有各自的属性和方法且属于某个类。对象是类的具体。
OC类的使用主要分为三个步骤:
1、定义类。
包含类的声明和实现。其中在类的声明中,包含了数据抽象和行为抽象。数据抽象就是声明类的属性,行为抽象就是声明方法。
声明部分:.h
@interface 类名 : 父类名 {
// 数据抽象
// @private @protected @public
访问修饰符 类型 变量名;
}
// 初始化方法
- (instancetype) initWithXxx:(参数类型) 参数名
Yyy:(参数类型) 参数名;
// 类方法:类可以接受的消息与对象无关
+ (返回类型) 方法标签1:(参数类型) 参数名;
// 行为抽象
// 对象方法:通过给对象发消息来调用的方法
- (返回类型) 方法标签1:(参数类型) 参数名 方法标签2:(参数类型) 参数名;
@end
实现部分:.m
@implementation 类名
//具体方法的实现
@end
2、创建对象
类名 *变量名 = [[类名 alloc] initWithXxx...];
说明:对象时创建在堆内存中的,所以对象要用指针类型指向。
3、给对象发消息(解决问题)。
给对象发消息是通过使用中缀符来实现的。例如:[变量名 对象方法];
在Objective-C类的定义中,在行为抽象时,存在两种方法的定义与实现。
以”+“开头的方法是加号方法,我们称之为类方法。类方法是与对象状态无关的方法。类方法属于当前类,不属于当前类的任何一个对象,只能由类通过类名调用,不能通过对象给类发消息来调用。
以“-”开头的方法是减号方法,我们称之为对象方法。对象方法只能通过类的实例对象进行调用。
通常工具类的工具方法都是类方法,很多时候创建对象也可以使用类方法。
面向对象的四大支柱:
1、抽象。
2、封装。隐藏一切可以隐藏的实现细节,只提供简单的消息借口。
3、继承。从已有类创建新类的过程。提供继承信息的类叫父类(基类/超类),得到继承信息的叫子类(派生类)。
4、多态。多态是这四个特性中最为重要的。同样的消息,不同的行为。