面向过程的编程(procedure-oriented programming,POP:以事件为中心,关心完成事件的详细步骤,一步一步如何实现)
面向对象的编程(Object Oriented programming,OOP,以事物为中心,也就是参与事件的参与者,设计事物的功能,而完成事件只是所有功能中的一个小功能)
简单的说就像人吃饭,面向过程就是人怎么去吃饭(用筷子啊,清蒸啊,红烧啊等等),面向对象就是以人为基准(人能 吃喝拉撒睡等)以饭为基准(饭有 米饭面条海鲜各种不同做法等),人怎么去吃饭只是所有功能的一部分
类:具有相同特征和相同行为事物的抽象
类是一个抽象的概念生活中不具体
对象:是类的实例 也就是类的具体表现 生活中的万物都是对象
描述一个类: 通过特征(静态属性)行为(动态属性)
@是OC的标志
类的定义分为两部分,:
1:类的接口部分,提供外部访问的接口相当于使用说明书
2:类的实现部分详单与功能的实现
类的接口部分写在 .h 文件中
接口部分的定义:(1)以@interface开始 以 @end结束,只有把类的接口定义内容写在之间才有效
(2)Person 类名.
(3) : 号表示继承. 表示他有父类
(4)NSObject父类名
实例变量 类似于结构体中的结构体成员,必须写在大括号内,而且大括号内只能写实例变量
-(void)sayhi;//方法名 sayhi , - 号的意思是 由 对象调用的方法, + 号则表示是由类调用的方法.
类的实现部分 写在.m 文件中
类的实现部分:(1) 写在@implementation 和 @end之间才有效
@implmentation 后的Person是要实现的类(需要指定对哪一个类实现)
方法调用采用 消息发送机制[receiver(接收者,类 或 对象) message(消息,方法)]
如何区分是给类还是对象发送消息 [- 开头是给对象发送的, + 开头是给类发送的]
创建对象分两步:
1 . 开辟空间.alloc 方法加号方法
通过[person alloc] 在堆区开辟的空间才是真正的对象,只不过对于指针变量per存储的首地址,通过它才能访问对象,所以我没问你把指针变量per叫做对象(但真正的对象是堆区空间per本质是指针变量)
id 可以代表所有的对象类型 ,可以用对应类型的对象来接收
Person *per = [Person alloc];
2 . 初始化 init 放法完成初始化操作 减号方法,对象调用
per = [per init];
- (id)initWithName:(NSString*)_name price:(NSInteger)_pricecolor:(NSString *)_color;
由自己定义的初始化方法,给自己的每个实例变量赋初值[per sayhi]; 由对象调用方法.