笔记目录
- 提示
- 一、介绍
-
- 1.1 介绍面向对象技术
-
- (1) 面向过程编程
- (2) 面向对象编程(OOP)
-
- 1)对象 Object
- 2)方法 method
- 3)type 或 class
- 4)优点
- (3) 基本概念
-
- 1)Object 对象
- 2)Class 类
- 4)Message 消息
- 5)Abstraction 抽象
- 6)Encapsulation 封装
- 7)Inheritance 继承
- 8)Polymorphism 多态
- 1.2 介绍UML
- 1.3 软件开发过程和OOA&D
- 1.4 组件和CBSD
- 1.5 模式和体系结构
- 二、
提示
主要是记载学习面向对象分析与设计课程的笔记总结
一、介绍
1.1 介绍面向对象技术
(1) 面向过程编程
- 这种编程范式本质上是机器/汇编语言的抽象;
- 编程是围绕过程进行的;
- 专注于数据结构、算法和步骤的排序。
面向过程程序的主要内容就是算法和数据结构

算法:一组用于解决问题的指令。
数据结构:用于以特定方式组织数据的构造。
缺点:
- 将程序与数据分割过于清晰 ;
面向对象 第一章 笔记(ing)提示一、介绍二、 - 分析与编程设计之间存在代沟 ;
面向对象 第一章 笔记(ing)提示一、介绍二、 - 分析结果与具体落实需要进行转化;
- 设计的模型需要很多的步骤实现;
- 一个完成的程序很难二次利用;
- 面向过程编程的项目很难进行拓展和维护。
(2) 面向对象编程(OOP)
OOP:Object-Oriented Programming
面向对象编程:编程是围绕对象进行的,是指导软件构建的一组原则,以及支持这些原则的语言、数据库和其他工具。
1)对象 Object
- 对象是在软件运行时才会存在的概念,软件运行时等价于生成了一个世界,世界里的万物都可为对象。一个对象可以是一个人、地方、事件;
- 对象包括数据和方法;
- 相同类的对象具有相同的数据和方法;
- 对象之间通过互相调用实现信息的接受和发送。
2)方法 method
由一个对象执行的操作,即方法。
3)type 或 class
- type 是型,相对于class,型的外延更加宽泛,型是来约束对象的行为的,比如 int 类型对象,只可进行 int 类型的操作;
- class,个人理解就是类,是生成对象的模型,由同一个模型生成对象,具有相同的方法和数据。
4)优点
- 单一模式:用户、分析人员、设计人员和实现者使用的编程语言单一;
- 体系结构和代码便于重用;
- 编程模型更加接近于现实世界:更加准确的描述了现实世界的实体、基于自然区分而切分体系、易于理解和维护;
- 稳定性更好:需求中的一个小变化并不意味着开发中的系统的巨大变化;
- 对于变化的自适应能力强。
(3) 基本概念
1)Object 对象
定义: 对象是具有定义良好的边界和标识的实体,它封装了状态和行为。
- 状态:由属性和关系表示,是对象可能存在的条件之一,通常会随着时间而改变;
- 行为:行为由操作、方法和状态机表示,决定一个对象如何行动和反应,对象的可见行为由它可以执行的操作而定义;
- 每个对象都有唯一的标识,即使状态与另一个对象相同;
- 一个对象不会独自承担所有任务,也不会没有存在的意义;
- 对象之间通过消息进行交互。
2)Class 类
定义: 类是一组具有相同属性和行为的对象的描述。
个人理解: 就是一类对象的模型,对象就是类的具体实现,就比如,我们都对神仙有个基本而模糊的认知比如会飞有仙法等等,观影菩萨就是一个具体的神仙,会飞会仙法,神仙是一个类,观影菩萨就是对象。
- 类是对象的抽象定义,类中定义了对象的结构和行为,是创建对象的模板;
- 对于一堆(1~n个)相同对象可以抽象为一个类;
- 对象是类的实例。
- 类的属性(attribute):是命名属性(不赋值),主要作用就是描述类的实例(即对象)的对应属性应当具有的规范(大小范围、可进行操作等等),一个类可以有0~n个属性;
- Operation:操作是服务的实现,可以从类的任何对象请求该服务来影响行为,一个类可以有任意数量的操作,也可以没有操作(所谓操作即对类中的属性进行增删改查等等行为,与对象中的method不是一回事)。
注意: Object的属性为property,Class的属性为attribute,这是不一样的,attribute指命名属性。
4)Message 消息
定义: 一种对象之间通信的规范,该规范传递信息,并期望活动随之发生(一个对象请求另一个对象执行操作)。
5)Abstraction 抽象
个人理解: 所谓抽象,就是将一个实体中的属性、操作提取出来。
6)Encapsulation 封装
定义: 封装意味着设计、生产和描述软件,以便在不了解其工作细节的情况下轻松使用软件,也被称为信息隐藏。
解释: 封装的一个具体实例就是编程中使用的函数接口,我们编写好接口后,只需要向外界提供接口即可,外界不清楚我们内部的属性和方法。而万物都是接口,手机就是接口,我们解锁手机,只需输入密码即可解锁,而不清楚里面是如何运作的。