一.C语言主要是面向过程,OC中开始大量使用面向对象。对于在以后的问题中有了面向对象和面向过程两种思考模式。就五子棋而言,面向过程是具体操作步骤,设计思路就是首先分析问题的步骤:1、开始游戏 ,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘 制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。把上面 每个步骤用分别的函数来实现,问题就解决了;面向对象是玩家,棋盘,规则这三个对象,比较宏观,面向对象的设计则是从另外的思路来解决问题。整个五子棋可以 分为 1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负 责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。第一类对 象(玩家对象)负责接受用户输 入,并告知第二类对象(棋盘对象 )棋子布局的变化,棋盘对象接收到了棋子的i变化就要负责在屏幕 上面显示出这种变化,同时利用第三类对象(规则系统)来对 棋局 进行判定。 面向对象编程(Object-Oriented Progamming)的首字母缩写为OOP,这是一种常用的 编程技术,最初是为了编写模拟程序而开发的。
二.面向对象有三个概念类、对象、方法。类定义了事物中的属性和它的行为,对象是类的实例,方法是一个类能做的事情。 1、类(class)是一种表示对象类型的结构体,对象通 过它的类来获取自身的各种信息,尤其是执行每个操作都 需要运行的代码。简单的程序可能仅包括十几个类,中等 复杂的程序会包含几十个类。 2、对象(object)是一直包含值和指向其类的隐藏指针 的结构体。运行中的程序通常都包含成百上千个对象。指 向对象的变量通常不需要首字母大写。3、实例(instance)是“对象”的另一种称呼,比方 说circle对象也可以称为circle类的实例。 4、消息(message)是对象可以执行的操作,用于通知 对象去做什么。5、方法(method)是为响应消息而运行的代码。根据 对象的类,消息可以调用不同的方法。 6、方法调度(method dispatcher)是OC使用的一种 机制,用于推测执行什么方法以响应某个特定的消息。7、接口(interface)是类以对象提供的特性描述。例如 ,Circle类的接口声明了Circle类可以接受draw消息。 8、实现(implementation)是使接口能正常工作的 代码。在我们的实例中,circle对象的实现中含有屏幕上 绘制圆形的代码。向circle对象发送draw消息时,你不会 知道也不必知道函数是如何工作的,只需要知道它能在屏 幕上画个圆就可以了。
三.Objective-C 简称 OC 1.C语言的基础上,增加了一层最小的面向对象语法 2.完全兼容C语言 3.可以在OC代码中混入C语言代码,甚至是C++代码 4.关键字以@开头、用于区分C和C++的关键字 • @interface、@implementation、@end、@public @protected、@private、@selector 、@try 、@catch、@throw、@finally 、@protocol 、@optional、@required、@class、@property 、@synthesize、@dynamic、@self、super、id 、_cmd、__block、__strong、__weak、 5.OC文件以.m文件结尾(.m 代表.message)
四.布尔类型 1.许多编程语言都支持布尔类型(Boolean),它指的是可以存储真值和假值的变量类型,当然Objective-C也不例外。 2.C语言中其实拥有bool类型,true和false两个值,Objective-C中也提供此功能为BOOL类型,它具有Yes和NO两个值。
五.OC语言中得OOP
类接口:定义了类的数据和方法,但是不包括方法的实现代码。 类实现:包含了实现类方法的代码。 应用程序:调用类来完成一些实际操作的应用程序。
1. @interface部分(接口部分,后缀名.h) 创建某个特定类的对象之前,Objective-C 编译器需 要一些有关该类的信息,尤其是对象的数据成员及提 供的功能。可以使用@interface指令把这些信息传递 给编译器。 a.中辍符 Objective-c有一种名为中辍符(infix notation)的语法技术。方法的名称及其参数都是合在一起的。 b.带一个参数的方法: [circle setFillColor:redColor]; c.带两个参数的方法: [textThing setStringValue:@”hello” color:blueColor]; setStringValue:和Color:是参数的名称,是@“hello ”和blueColor是 被传递的参数
2. @implementation部分(实现部分,后缀名.m或.mm) 刚讨论的@interface部分,它用于定义类的公共接口。 通常接口被成为API(application programming interface 的三个首字母缩写)。而真正是对象能够运行的代码位于@implementation部分中。
3. 实例化对象 非常关键的过程,在该过程中,我们可以创建生动的 形状对象。 这个过程的专业术语叫做实例化(instantiation)。 实例化对象时,需要分配内存,然后将这些内存初始 化并保存为有用的默认值,这些值不同于通过新分配 的内存获得的随机值。内存分配和初始化工作完成后 ,就意味着新的对象实例已经创建好了。
六. 通过一天的学习,从模糊到懵懂,最后到醒悟,慢慢的对OC有了感觉,感受到了OC中的奇妙,以及与C的优越之处。今天最大的收获是OOP,面向对象编程,通过接口部分.h文件和实现部分.m文件,巧妙的调用了函数,这样主函数就会显得清晰明了,在以后的团队项目开发中,可以很好的将成员各自负责的模块组合在一起。