1.面向对象(一)
面向过程与面向对象的区别(蛋炒饭VS盖饭)
为什么会出现面向对象分析方法?
因为现实世界太复杂多变,面向过程的分析方法无法满足。
面向过程
采用面向过程必须了解整个过程,每个步骤都有因果关系,每个因果关系都构成了一个步骤,多个步骤就构成了一个系统,因为存在因果关系每个步骤很难分离,非常紧密,当任何一步骤出现问题,将会影响到所有的系统。如:采用面向过程生产电脑,那么他不会分CPU、主板和硬盘,它会按照电脑的工作流程一次成型。代码间耦合度(代码间的关联)强,牵动任何一个因果关系会影响整个系统的运行。
面向对象
面向对象对会将现实世界分割成不同的单元(对象),实现各个对象,如果完成某个功能,只需要将各个对象协作起来就可以。
【1】(了解)面向对象 vs 面向过程 例子:人开门;把大象装冰箱
理解一:人开门
//面向过程:人 打开 门 //面向对象: 人{ 打开(门){ 门.开开(); } } 门{ 开开(){ } } |
理解二:人把大象装进冰箱
//面向过程:1)打开冰箱2)把大象放进去 3)关闭冰箱门 //面向对象: 人{ 打开(冰箱){冰箱.开开();} 操作(大象){大象.进入(冰箱)} 关闭(冰箱){冰箱.合上()} } 大象{ 进入(冰箱){} } 冰箱{ 开开(){} 合上(){} } |
【2】面向对象的编程关注于类的设计!
1)一个项目或工程,不管多庞大,一定是有一个一个类构成的。
2)类是抽象的,好比是制造汽车的图纸。
而具体的一辆一辆的车,是根据图纸制造的,实际上就是类的实例化
【3】完成一个项目(或功能)的思路
1)所要完成的功能对应的类的对象是否存在。
2)若存在,则通过对象直接调用对应的类中的属性或方法即可
3)若不存在,需要创建类的对象。甚至说,类都不存在,就需要设计类。
【4】面向对象编程的三条主线:
1)类及类的构成成分:属性 方法 构造器 代码块 内部类
2)面向对象编程的三大特征:封装性 继承性 多态性 (抽象性)
3)其它的关键字:this super package import static final abstract interface ...
【5】从软件的开发的生命周期来看,基于面向对象可以分为三个阶段:
1)OOA(面向对象的分析)
2)OOD(面向对象的设计)
3)OOP(面向对象的编程)-----Java 就是一个纯面向对象的语言
1.1类
1.1.1 类的概念
l 类(class)和对象(object)是面向对象的核心概念。
- 类是对一类事物描述,是抽象的、概念上的定义;对现实世界中具有共性的事物进行抽象就形成了类;类是一种引用类型;类在现实世界中是不存在的,是人们大脑抽象出来的一个概念。
- 对象是实际存在的该类事物的每个个体,因而也称实例(instance)。
- “万事万物皆对象”
1.面向对象(一)
面向过程与面向对象的区别(蛋炒饭VS盖饭)
为什么会出现面向对象分析方法?
因为现实世界太复杂多变,面向过程的分析方法无法满足。
面向过程
采用面向过程必须了解整个过程,每个步骤都有因果关系,每个因果关系都构成了一个步骤,多个步骤就构成了一个系统,因为存在因果关系每个步骤很难分离,非常紧密,当任何一步骤出现问题,将会影响到所有的系统。如:采用面向过程生产电脑,那么他不会分CPU、主板和硬盘,它会按照电脑的工作流程一次成型。代码间耦合度(代码间的关联)强,牵动任何一个因果关系会影响整个系统的运行。
面向对象
面向对象对会将现实世界分割成不同的单元(对象),实现各个对象,如果完成某个功能,只需要将各个对象协作起来就可以。
【1】(了解)面向对象 vs 面向过程 例子:人开门;把大象装冰箱
理解一:人开门
//面向过程:人 打开 门 //面向对象: 人{ 打开(门){ 门.开开(); } } 门{ 开开(){ } } |
理解二:人把大象装进冰箱
//面向过程:1)打开冰箱2)把大象放进去 3)关闭冰箱门 //面向对象: 人{ 打开(冰箱){冰箱.开开();} 操作(大象){大象.进入(冰箱)} 关闭(冰箱){冰箱.合上()} } 大象{ 进入(冰箱){} } 冰箱{ 开开(){} 合上(){} } |
【2】面向对象的编程关注于类的设计!
1)一个项目或工程,不管多庞大,一定是有一个一个类构成的。
2)类是抽象的,好比是制造汽车的图纸。
而具体的一辆一辆的车,是根据图纸制造的,实际上就是类的实例化
【3】完成一个项目(或功能)的思路
1)所要完成的功能对应的类的对象是否存在。
2)若存在,则通过对象直接调用对应的类中的属性或方法即可
3)若不存在,需要创建类的对象。甚至说,类都不存在,就需要设计类。
【4】面向对象编程的三条主线:
1)类及类的构成成分:属性 方法 构造器 代码块 内部类
2)面向对象编程的三大特征:封装性 继承性 多态性 (抽象性)
3)其它的关键字:this super package import static final abstract interface ...
【5】从软件的开发的生命周期来看,基于面向对象可以分为三个阶段:
1)OOA(面向对象的分析)
2)OOD(面向对象的设计)
3)OOP(面向对象的编程)-----Java 就是一个纯面向对象的语言