面向对象开发技术(第三周)

简介: 所以,本堂课重点来来看看抽象思想

回顾

上一堂课主要学习了面向对象编程与非面向对象编程(面向功能、过程编程),本节课就重点来看看面向对象编程中的一个具体思想——抽象

面向对象编程的特性:1、封装性 2、继承性 3、多态性

封装:意味着提供服务接口

继承:意味着类之间层层的关系,也就是需要从上层到下层具体化,或从下层到上层抽象化

多态:意味着处理继承中的特殊情况,让类的关系更加自由

所以,本堂课重点来来看看抽象思想

抽象定义

抽象:是建立、理解和管理复杂的系统最主要的技术

包括:1、对一个功能实现的过程细节有目的的隐藏

         2、以便让其他方面、细节表达的更清楚

举例:1、世界地图忽略细节以便呈现世界的整体样貌,整体关系

         2、地方性的地图重点展示各山峰、超市、街道等,而忽略了整体的样貌、关系

抽象层次

层次一、团体

在面向对象程序开发过程中,关于“团体有两个层次的含义:

1、首先是指程序员的团体,他们在现实世界中相互作用,以便开发出应用程序来。

2、第二个团体是这些程序员创建的对象的团体,它们在虚拟世界中相互作用,以完成它们的共同目标。

下图可以理解为一个程序的程序员团体一个程序的对象团体

层次二、单元

在面向对象程序开发过程中,单元的含义有:

1、许多协同工作的对象组合到一个“单元”中

2、这些单元允许某些特定的名称暴露在单元以外,而其他特征则隐藏在单元中

3、例如,Java(packages)C++名字空间(name spaces)Delphi中的单元(units)

注意:当用protected修饰类成员时,该类成员能够被其子类同一包中的其他类访问

层次三、CS

在面向对象程序开发过程中,CS的含义有:

1、处理两个独立对象之间的交互

2、两个对象间交互时涉及两层抽象:一个对象(服务者, server)向另一个对象(客户, client)提供服务,二者之间以通信来交互

层次四、服务实现方式

1、考虑第三层次中的服务中具体的实现方式

2、这个具体实现方式仍然存在一定抽象,包括:实现算法、数据结构等

层次五、具体实现

1、方法的具体实现逻辑(具体过程、具体的算法数据结构的实现)

2、关注执行一个方法的具体操作实现

总结

1、在软件产品设计的过程中,我们思考的层次从上到下进行的。因为越上层的抽象层度越高,越简洁。

2、软件开发团队布置任务的顺序也是从上层到下层,层层分解来布置的。越上层的其对应开发团队中的地位也相对更高

抽象方法

特化分层

定义

特化分层又称为特殊化或具体化,在具体化的物体中抽象出一些共同的特性、特点归为一个特殊的上层类的方法就称为抽象

举例

一、汽车是一个有轮的载运工具,而有轮的载运工具又是一个载运工具,所以载运工具就是从汽车这个具体化的物体中抽象提炼出来的

二、生物分为动物和植物,动物又分为脊椎动物和无脊椎动物,脊椎动物包括哺乳动物,哺乳动物又分为猫、狗

分治法

定义

将一层复杂的系统划分为多个组成部分,从而将复杂系统简单化。任何平常接触的名词都是抽象化后的结果,例如:汽车、手机等。这些都是将许多系统(传动系统、显示系统等),甚至更底层可以说是物质组合后抽象归纳出来的东西

举例

汽车是由发动机、传动机构、车身和车轮组成的,要理解汽车这个概念,只要依次检查其组成部件就行了

不同视角

定义

对同一件物品提供不同的视角。每一个视角会强调某一些细节而忽略其他细节,因此,对同一对象描述出不同的特性。本质上就是利用视角不同,对物体的功能和实现方式进行不同程度的抽象处理。

举例

一、机械师眼里的汽车和外行眼里的汽车,看法是很不一样的。机械师眼里的汽车抽象程度相对于外行人眼里的汽车就更低

二、服务视角:服务的制造者仅仅关注服务功能的实现并不关注使用的场地、环境等,服务的使用者仅仅关注什么时候使用服务并不关注服务的具体实现方式

总结

如果觉得写的还不错,可以点个赞收藏一下呀~~

祝大家学业、事业、爱情顺利!

天天开心,没有Bug每一天

相关文章
|
10月前
|
存储 编解码 数据可视化
面向对象可视化编程课程设计
面向对象可视化编程课程设计
|
2月前
|
算法
【编程技巧】精通编程的秘密武器:高效编程技巧揭秘!
【编程技巧】精通编程的秘密武器:高效编程技巧揭秘!
29 0
|
2月前
|
算法 程序员 C语言
【高效编程技巧】编程菜鸟和编程大佬的差距究竟在哪里?
【高效编程技巧】编程菜鸟和编程大佬的差距究竟在哪里?
39 0
|
2月前
【中级软件设计师】—(针对上午题)面向对象技术(三十三)
【中级软件设计师】—(针对上午题)面向对象技术(三十三)
|
JavaScript 前端开发 机器人
梦回战国,领略两千多年前公孙龙如何将面向对象运用得炉火纯青
2200 年前的战国时期,赵国平原君的食客公孙龙有一天骑着白马进城时,被守城的官兵以马不能进城而将其拦下.公孙龙当众即兴演讲,口述"白马非马"一论.守城的官兵被说的一愣一愣的,无法反驳。于是公孙龙就骑着他'不是马的白马'大摇大摆进城去了,这其实就是历史上最为经典的一次面向对象思维的阐述
28605 11
|
设计模式 算法 IDE
学好编程的 4 个秘诀
学好编程的 4 个秘诀
148 0
|
C++
C++面向对象高级编程(下) 第一周
Conversion Function 转换函数 你现在设计一个对象 class A,它可不可以被转为另外一种类型,这就是一种转换。
880 0
|
C++
C++面向对象高级编程(上) 第二周 侯捷
三大函数——拷贝构造、拷贝赋值、析构函数   拷贝构造——接受的是自己这种东西       ctor和dtor构造函数和析构函数 字符串有两种: 一种是前面有一个常数,用于记录字符串的长度,此字符串的末尾没有结束符号。
1316 0
|
C++ 编译器 设计模式
C++面向对象高级编程(上) 第一周 侯捷
头文件与类声明   头文件中的防卫式声明 #ifndef _FILENAME_ #define _FILENAME_ //... #endif 扩展:为什么要添加防卫式声明(防止由于同一个头文件被包含多次,而导致了重复定义。
1272 0