1. 在代码中如何使用面向对象的思维去解决问题.
a. 千万不要自己去1步步实现.
b. 先找1下有没有现成的专门做这个事情的人. 框架。
如果框架中有这样的人 直接喊过来用就可以了.
c. 框架中如果没有呢? 就自己造1个拥有这个功能的人.
这个人不仅在这个地方可以使用 在另外的地方也可以使用.
2. 面向对象相对于面向过程.
面向对象的优点: 后期程序的维护和扩展非常的方便. 如果功能发生变化 我们只需要换1个人就可以了.
OC Swift Java C# ......
面向过程优点: 与底层的交互效率很高.
C
3. 类和对象.
1). 什么是对象
对象是现实生活中的具体存在.
特点:看得见、摸的着 拿来就可以用.
2). 什么是类
物以类聚 人以群分.
类是对1群具有相同特征、行为的事物的统称.
特点:抽象,无法直接使用.
人. 不是单独指1个个体. 而是指1群.
学生. 是1个人并且具有学习的行为.
无法直接使用类 因为类是1个统称.
如果你非要用. 就必须要找到这群事物中的1个具体的存在.
3). 食物.
水果.
苹果.
红富士苹果.
4). 交通工具.
车.
汽车
奔驰汽车
奔驰汽车CLS350
4. 类与对象的关系
类是模板,对象是根据这个模板创建出来的.模板中有什么 对象中就有什么 不会多也不会少.
类是制造月饼的模子, 所以类不能使用. 所以模子是不能吃的.
对象是根据这个模子制造出来的月饼. 模子上有什么 月饼上就有什么 绝不可能多 也不可能少.
对象是可以直接使用的. 月饼是可以吃的.
只要有1个制造月饼的模子 就可以根据这个模子做很多很多的月饼出来.
只要有1个类模板 那么我们就可以创建很多很多个对象.
5. 如何设计1个类.
最要的三点:
-> 这个类叫做什么名字. 你要描述的这类事物叫做什么
-> 这类事物具有的相同的特征.
-> 这类事物具有的相同的行为
人
特征: 姓名 年龄 身高 体重 性别
行为: 吃饭 睡觉 走路
空调:
特征: 品牌 颜色 尺寸 功率 匹数 重量...
行为: 放冷气 放热气
6. 如何找到类: 名词提炼法.
分析这个需求中,出现了哪些名词 这些名词就是类. 然后再分析类的三要素.
3辆坦克发射了6枚炮弹打中了2架飞机.
坦克类
特征: 型号 大小 攻击能力. 颜色...
行为: 行驶 发射炮弹
炮弹类
特征: 型号 威力 .....
行为: 飞行 爆炸
飞机类
特征: 型号 大小 座位数量....
行为: 飞行 爆炸.
小明在公交车上牵着1条叼着热狗的狗.
人类
特征: 姓名 年龄....
行为: 遛狗
公交车
特征: 型号 座位数量....
行为: 行驶...
热狗
特征: 味道. 大小.....
行为: 散发味道.
狗.
特征: 颜色 品种...
行为: 叼热狗.
7. 设计1个类.最重要的是类的三要素.
类名:
特征:
行为:
8. 是先有类 还是有先对象.
从现实的角度: 一定是先有对象才有类
从代码的角度: 一定是先类再有对象.
代码之中:
先创建类模板. 然后才可以根据这个模板创建出对象来使用.
使用类描述1群事物 然后通过类模板再创建对象.
9. 如何定义类
1). 类是干嘛的? 描述一群具有相同特征和行为的事物的.
2). 定义类分为两个部分.
a. 类的声明.
@interface 类名 : NSObject
{
写上这类事物具有的共同的特征;
}
写上这类事物具有的共同的行为的声明.
@end
b. 类的实现.
@implementation 类名
写上这类事物具有的共同的行为的实现.
@end
c. 具体做法.
将这类事物具有的相同的特征定义为变量 定义在声明类的大括弧之中.
d. 定义类的规范.
-> 类名的每1个单词的首字母大写.
-> 表示这类事物具有的共同的特征的变量名 必须使用 下划线开头.
10. 创建对象.
1). 类是无法直接使用的. 如果非要使用的话.就必须找到这个类中的1个具体的存在.
2). 这个具体存在就有这个类定义的所有的成员.
3). 如何创建类的对象呢?
类名 *对象名 = [类名 new];
Person *p1 = [Person new];
表示创建了1个对象.对象名叫做p1.
p1对象是根据Person模板创建的.
所以
-> p1对象中有 Person模板中定义的所有的东西.
-> p1是个对象 所以我们可以直接使用p1。
4). 用来描述这类事物的共同特征的变量.
叫做 成员变量、实例变量、字段、属性.
11. 访问对象的成员
a. 默认情况下 对象中的成员外界是没有权限访问的.
如果外界想访问那么就在类的字段的上面写1个@public关键字.
b. 访问对象的成员的语法
对象名 -> 成员名 = 数据;
(*对象名).成员名;
12. 请定义1个学生类.
属性: 姓名 年龄 学号 成绩.
定义类 然后创建对象. 并为对象的属性赋值.
最后将对象的各个属性的值输出.
13. 再次的聊几个问题
1). 类是用来干嘛的?
用来描述一群具有相同特征和行为的事物的.
14. 注意的几个问题
1). 找准位置. 类的声明和实现都直接在源文件之中 不应该写在函数内部.
2). 类名的每1个单词的首字母大写.
3). NSObject 是什么意思 不需要管. 类名和NSObject中间是用冒号隔开的.
4). 用来描述这类事物的共同特征的实例变量应该写在类的声明的大括弧之中.
5). 实例变量名必须要以下划线开头.
6). 类分为两部分 缺一不可 分为声明和实现.
@interface是声明
@implementation 是实现.
7). 无论是声明还是实现 @end必不可少.
8). 类的实现必须要在类的声明后面
9). 如果发现通过对象名 箭头 出来的成员被删除线 那么就说明没有写@public