当前课程知识点:C++语言程序设计基础 >  第1章 绪论 >  面向对象的基本概念 >  面向对象的基本概念

返回《C++语言程序设计基础》慕课在线视频课程列表

面向对象的基本概念在线视频

面向对象的基本概念

面向对象的基本概念

对象

l一般意义上的对象:现实世界中实际存在的事物。

l面向对象方法中的对象:程序中用来描述客观事物的实体。

抽象与分类

l分类依据的原则——抽象;

l抽象出同一类对象的共同属性和行为形成类;

l类与对象是类型与实例的关系。

封装

l隐蔽对象的内部细节;

l对外形成一个边界;

l只保留有限的对外接口;

l使用方便、安全性好。

继承

l意义在于软件复用;

l改造、扩展已有类形成新的类。

多态

l同样的消息作用在不同对象上,可以引起不同的行为。


下一节:程序的开发过程

返回《C++语言程序设计基础》慕课在线视频列表

面向对象的基本概念课程教案、知识点、字幕

那接下来呢

我给大家归纳一下

面向对象的一个几个概念

一个是对象就是Object

自然界中的一个物体

一个人个体都是一个对象

那么程序中也有相应的机制

可以模拟这个对象

还有一种就是类

类是基于分类和抽象的思维

形成的

同一类对象

我们可以抽象出它的共同属性

和行为就形成了类

比如说老师就是一类人

那么今天如果不是我

站在这儿讲课

换一个别的老师来

只要他经过考核

有这个资质的

同样可以讲这个课

为什么呢因为站在这儿

需要站在这儿讲课的

不一定是我这个人

而是需要这样一种老师

站在这儿讲课

这就是一种分类的思想

然后我会讲

今天学完了以后

大家要去做什么习题

同学们要去做什么实验

那么这是对学这门课的学生

一个统一的要求

也就是说把大家分类了

选了这门课的学生是同一类人

所以这种思维

我们都是很习惯的

那么类与对象什么概念呢

什么关系呢

这两个概念之间的关系

就是类型和这个类型的实例

之间的关系

就好像是模具和铸件的关系一样

我们再观察一下

自然界中的对象

比如说一个电视机

你要操纵它怎么操纵

用摇控器用面板上的按钮

你不能打开机壳

去调里面的东西吧

那属于维修那不属于使用吧

那钟表你怎么使用它

你要调时间要看时间

通过面板通过旋钮按钮

对吧

这都是有壳封装起来的

当然人更是封装起来的

人不能轻易被打开

打开就是跟机器维修一样

那不是好事

所以我们对象都是被封装起来的

封装起来有什么好处

当然第一是安全性

我们的脑袋是封装起来的

所以它不会受环境条件的影响

被破坏掉对吧

我们的仪器设备是封装起来的

不会被轻易地摔坏

被误操作给损伤等等这些

那好以前呢

如果没有面向对象的

这种机制的话

我们在程序里面的代码

是没有这种封装机制的

所以封装起来用着方便

你不用管里面的实现原理

还有安全性好

所以这也是面向对象的一个特点

封装

还有一点是什么是继承

继承这个词大家习惯都知道

子承父业

那你想想

如果说你能继承一个产业

在你继承产业的基础上

再去发展你就要比从零起步

发展得快文化也是这样

我们首先要继承

我们民族几千年的传统文化

在这个基础上去发扬光大

去发展

所以我们都知道继承是件好事

写程序能不能也这样呢

当然我们也希望这样

不要我每写一个程序

都一切从头开始

从刀耕火种开始

那个任务太重了

最好有现成的一些什么东西

可以被我拿来所用

继承来也许我还需要改造

然后总归比我从头

一切自己做起要好

在第七章我们会给大家讲继承

这些程序重用的一种方式

还有一个面向对象的概念

叫做多态性

多态性这个词呢

大家似乎有点陌生

英文的这个词也比较长

比较别扭 polymorphism

都不是一个很常用的词

但是多态现象

却是一个非常常见的现象

比如说

我说今天下课以后

我们去打乒乓球啦

另外一组同学说

那咱们去打篮球去

都说的是打球都用了一个打

我们打乒乓球

他们去打篮球打法一样吗

当然不一样

这是常识大家都知道

但是为什么我们说话的时候不说

我们俩用打乒乓球的方法

去打乒乓球了

那几个人为什么不说

我们哥几个用打篮球的方法

去打篮球了

如果你这样说话

大家一定觉得这个人有毛病

为什么因为我们都知道

都是打球但是打的球不一样

包括英文用的词是什么 play

你play的东西不一样

规则就不一样方法就不一样

这个大家都清楚

这个是什么这就是多态

那么程序中

能不能也支持这种思维方式呢

当然我们也希望它能支持

只有面向对象的程序

能支持这种多态的行为

这样的话呢

我们的程序就更容易写

也更容易理解了

C++语言程序设计基础课程列表:

第1章 绪论

-导学

--第1章导学

-计算机系统简介

--计算机系统简介

--计算机系统简介 测试题

-计算机语言和程序设计方法的发展

--计算机语言和程序设计方法的发展

--计算机语言和程序设计方法的发展 测试题

-面向对象的基本概念

--面向对象的基本概念

--面向对象的基本概念 测试题

-程序的开发过程

--程序的开发过程

--程序的开发过程 测试题

-信息的表示和储存

--计算机中的信息与存储单位

--计算机的数字系统

--数据的编码表示

--信息的表示和储存 测试题

-实验指导

--实验一:VS开发环境介绍

第2章 C++简单程序设计(一)

-导学

--第二章导学

-C++语言概述

--C++的特点和程序实例

--C++字符集和词法记号

--C++语言概述 测试题

-基本数据类型、常量、变量

--基本数据类型、常量、变量

--程序举例

--基本数据类型、常量、变量 测试题

-运算与表达式

--算术运算与赋值运算

--逗号运算、关系运算、逻辑运算和条件运算

--Sizeof运算、位运算

--运算优先级、类型转换

--运算与表达式 测试题

-实验二:简单程序设计(上)

--实验二:简单程序设计(上)

第2章 C++简单程序设计(二)

-数据的输入和输出

--数据的输入和输出

--数据的输入和输出 测试题

-选择结构

--if语句

--switch语句

--选择结构 测试题

-循环结构

--循环结构——while语句

--do-while语句

--for语句

--嵌套的控制结构、其他控制语句

--循环结构 测试题

-自定义类型

--自定义类型

--自定义类型

-第2章小结

--第二章小结

-实验二:C++简单程序设计(下)

--实验二C++简单程序设计(下)

第3章 函数

-导学

--导学

-函数定义

--函数定义

--函数定义 测试题

-函数调用

--函数调用(例3-1)

--例3-2

--例3-3

--例3-4

--例3-5

--例3-6

--函数调用 测试题

-嵌套与递归

--函数的嵌套调用(例3-7)

--函数的递归调用(例3-8)

--例3-9

--例3-10

--嵌套与递归 测试题

-函数的参数传递

--函数的参数传递

--函数的参数传递 测试题

-引用类型

--引用类型(例3-11)

--引用类型 测试题

-含有可变参数的函数

--含有可变参数的函数

--含有可变参数的函数 测试题

-内联函数

--内联函数(例3-14)

--内联函数 测试题

-constexpr函数

--constexpr函数

--CONSTEXPR函数课后习题

-带默认参数值的函数

--带默认参数值的函数

--默认参数值例(3-15)

--带默认参数值的函数 测试题

-函数重载

--函数重载(例3-16)

--函数重载 测试题

-C++系统函数

--C++系统函数(例3-17)

--C++系统函数习题

-第3章小结

--第三章小结

-实验三(上)函数的应用

--实验三(上)函数的应用

-实验三(下)函数的应用

--实验三(下)函数的应用

第4章 类与对象

-导学

--导学

-面向对象程序的基本特点

--面向对象程序的基本特点

--面向对象程序的基本特点 测试题

-类和对象

--类和对象的定义

--类和对象的程序举例

--类和对象 测试题

-构造函数

--构造函数基本概念

--构造函数例题(1)——例4-1

--构造函数例题(2)——例4-2

--委托构造函数

--复制构造函数

--复制构造函数调用举例

--构造函数 测试题

-析构函数

--析构函数

--析构函数 测试题

-类的组合

--类的组合

--类的组合程序举例

--前向引用声明

--类的组合 测试题

-UML简介

--UML简介

--UML简介课后习题

-结构体与联合体

--结构体(例4-7)

--联合体(例4-8)

--结构体与联合体 测试题

-枚举类

--枚举类

--枚举类 测试题

-第4章小结

--第四章小结

-实验四(上)

--实验四(上)

-实验四(下)

--实验四(下)

第5章 数据的共享与保护

-导学

--导学

-标识符的作用域与可见性

--标识符的作用域与可见性

--标识符的作用域与可见性 测试题

-对象的生存期

--对象的生存期

--对象的生存期 测试题

-类的静态成员

--静态数据成员(例5-4)

--静态函数成员(例5-5)

--类的静态成员 测试题

-类的友元

--类的友元(例5-6)

--类的友元 测试题

-共享数据的保护

--共享数据的保护(例5-7)

--共享数据的保护 测试题

-多文件结构和预编译命令

--多文件结构和预编译命令(例5-10)

--多文件结构和预编译命令 测试题

-第5章小结

--小结

-实验五

--实验五

第6章 数组、指针与字符串(一)

-导学

--导学

-数组的定义与初始化

--数组的定义与使用

--数组的储存与初始化

--一维数组应用举例

--数组的定义与初始化 测试题

-数组作为函数的参数

--数组作为函数参数(例6-2)

--数组作为函数的参数 测试题

-对象数组

--对象数组

--对象数组 测试题

-基于范围的for循环

--基于范围的for循环

-指针的定义和运算

--指针的概念、定义和指针运算

--指针的初始化和赋值

--指针的算术运算、关系运算

--指针的定义和运算 测试题

-综合实例

--综合实例

-实验六(上)

--实验六上

第6章 数组、指针与字符串(二)

-指针与数组

--用指针访问数组元素

--指针数组

--指针与数组 测试题

-指针与函数

--以指针作为函数参数

--指针类型的函数

--指向函数的指针

--指针与函数 测试题

-对象指针

--对象指针

--对象指针 测试题

-动态内存分配

--动态分配与释放内存

--申请和释放动态数组(一)

--申请和释放动态数组(二)

--动态内存分配 测试题

-智能指针

--智能指针

-vector对象

--vector对象

--vector对象 测试题

-对象复制与移动

--深层复制与浅层复制

--移动构造

--对象复制与移动 测试题

-字符串

--C风格字符串

--string类

--字符串 测试题

-第6章小结

--第六章小结

-综合实例

--综合实例

-实验六(下)

--实验六(下)

面向对象的基本概念笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。