面向对象-基本思想
一. 思想
1. 面向对象和面向过程只不过是解决问题的两种不同的思路
2. 面向过程:哪些步骤 面向对象:哪些对象
二. 生活中的例子
想打电话\发短信 à 找手机,不用分析电话要怎样才能拨通
去饭店吃饭à 找服务员,不用分析怎么到厨房炒菜
汽车坏了去找汽车维修工,不用分析修车的步骤
境界:万物皆对象
三. 常用术语
面向过程 Procedure Oriented
面向对象Object Oriented,简称OO
面向对象编程Object Oriented Programming,简称OOP
四.如何创建对象
要想如何创建对象我们首先要了解一下什么是类?
1) OC中的类相当于图纸,用来描述一类事物。也就是说,要想创建对象,必须先有类
2) OC利用类来创建对象,对象是类的具体存在
3) 因此,面向对象解决问题应该是先考虑需要设计哪些类,再利用类创建多少个对象
五.类的设计
1) 类的设计,只关心3样东西:
1)事物名称(类名):人(Person) 注意:首字母大写
2)属性:身高(height)、年龄(age) 又叫:成员变量
3)行为(功能):跑(run)、打架(fight) 又叫:方法
2) 一般名词都是类
3) 拥有相同(或者类似)属性和行为的对象都可以抽像出一个类
六.具体实例
说明:通过对这个简单小例子的上手练习,可以清楚的了解类是如何设计的以及如何通过类来创建出一个对象来。
实例2:
说明:通过对这个例子的上手练习,可以知道如何给类中成员变量赋值以及类方法的声明和实现。
1. 给成员变量赋值的话,我们是通过指针来间接赋值,如下:
Car *p=[Car new];
p->wheels=4;
p->speed=250;
2. 方法的声明和实现有以下的注意点:
1)对象方法的说明必须以-开头
2)方法中的数据类型用()括住
七.OC对象中的内存分配问题
Personal *p =[Personal new];
p->age=10;
p->weight=60;
当第一次使用这句话来创建对象时,首先会给类分配空间加载进内存
来后在给新建的对象分配空间,类的空间中有方法的声明,对象的空间中成员变量的声明,每个对象的内部有一个isa指针指向类。具体如下:
八.方法与函数的区别
方法:
1. 对象方法都是以– 开头
2. 对象方法的声明必须写在@interface和@end之间,对象方法的实现必须写在@implementation和@end之间
3. 对象方法只能由对象来调用
4. 对象方法归类/对象所有
函数:
1. 函数能写在文件中的任意位置(@interface和@end之间除外),函数归文件所有
2. 函数的调用不依赖于对象
3. 函数内部不能直接通过成员变量名访问某个对象的成员变量