一、面向对象编程的概念
1、编程的实质是什么? 软件编程就是将我们的思维转变成计算机能够识别的语言的一个过程。
2、面向过程与面向对象的区别
例如: 【去饭店吃饭】 1)面向过程:自己要参与整个过程中去,强调的是功能行为,关注的是解决问题需要哪些步骤 点菜---》自己去炒菜--》自己端上来--》自己吃---》自己结账
2)面向对象:自己不需要参加每个过程,有多个对象,厨师对象,服务员对象,自己这个对象。将功能封装进对象,强调了具备了功能的对象,关注的是解决问题需要哪些对象,其实细节实现还是面向过程的。 点菜--》厨师炒菜--》服务员端上菜--》你吃
3、概念 【面向对象(object-oriented) 简称:OO】 至今没有统一的概念,此处定义为:按人们认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世界分析、设计、实现软件的办法,通过面向对象的理念使计算机软件系统能与现实世界中的系统一一对应
【面向对象编程(object-oriented Programming ) 简称:OOP】 是一种解决【软件复用】的设计和编程方法,这种方法把酸碱系统中相近相似的操作逻辑和操作应用数据、状态,以类的形式描述出来,以对象实例的形式在软件系统中复用,以达到提高软件开发效率的作用。
【优点】 大幅度提高软件项目的成功率 减少维护的费用 提高可移植性和可靠性
【 三个主要特性】 封装 继承 多态
二、new方法 [Person new] 做了三件事 1)申请内存空间 2)给实例变量初始化 3)返回空间首地址
1、申请的内存空间再内存的哪个区? 在内存的堆区。是程序动态分配的内存空间。 初始化的时候: 如果是实例变量是基本类型,此时初始化位0 如果是OC字符串类型,则初始化位null
2、实例变量又保存在什么地方? 实例变量保存在堆区。 指针变量名存放在栈区。
3、对象方法保存在什么地方? 代码区
4、为什么使用[p run];就可以调用方法?如何调用的 首先找指针变量p对应的对空间,通过_isa找到指向的代码区空间,然后再该空间找到run方法
5、一个类可以创建多个对象
三、#pragma mark指令的使用 1、#pragma mark指令的使用 功能:对代码分组,方便代码查找和导航 #pragma mark - //两组之间加一个分割线 #pragma mark Person类的实现
四、方法与函数的区别 1、方法 1)对象方法的实现只能写在@implementation....@end中,对象方法的声明只能写在@interface....@end中间 2)对象方法都以“-”开头,类方法都以“+”开头 3)对象方法只能由对象来调用,类方法只能有类来调用,不能当做函数一样调用 4)函数属于整个文件,可以写在文件中的任何位置,包括@implementation ....@end中,但写在@interface....@end中会无法识别。函数的声明可以在main函数内部也可以在main函数外部 5)对象方法归【类或对象】所有
2、函数 1)所有的函数都是平行的 2)函数不存在隶属关系 3)使用的时候可以直接调用
4)不可以访问对象中的成员变量
|