oop:面向对象编程(object oriented programming),是一种计算机编程架构。

对象是由数据和容许的操作组成的封装体,和客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。而继承性是具有层次关系的类的属性和操作进行共享的一种方式。所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识理解、刻画客观世界和设计、构造相应的软件系统。

属性和方法的集合就形成了类,类是面向对象编程的核心和基础,类在实例化后就是对象。

对象的产生:

一:是以原型对象为基础产生新的对象。

二:是以类为基础产生新对象。

oop的一条基本准则就是 计算机程序是由单个能够起到子程序作用的单元或对象组合而成。

oop达到了软件工程的三大目标:重用性,灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其他对象发送信息。

oop主要有以下的概念和组件:

组件: 数据和功能一起在运行着的计算机程序中形成的单元。组件在计算机程序中是模块和结构化的基础

把组件的实现和接口分开,并且让组件具有多态性。

opp的优点:1.代码重用性高(省代码)  2.使程序的可维护性高(扩展性) 3.灵活性

oop核心思想: 封装、继承、多态

 抽象性:    程序有能力忽略正在处理中信息的某些方面,即对信息主要方面关注的能力。

 封装:  也叫信息封装:确保组件不会以不可预期的方式改变其他组件的内部状态;只有在那些提供了内部状态改变方法的组件中,才可以访问其内部状态。每类组件都提供了一个和其他组件联系的接口,并规定了其他组件调用的方法。

让抽象的事务保护自身的状态,防止非其他事务对其进行错误的状态改变操作。我们在抽象完一个事务之后,可能在特定的条件下,其本身的状态需要改变,但是这个改变不允许其他的事务来进行,这样的改变只允许这个事务认同的操作域来进行,可以是事务本身,也可以是其他的事务,这样我们就可以对我们抽象的每个事务进行自我的数据的保护。

继承:  让抽象出来的事务具有本应该具有的联系。我们能用类来描述一个抽象的事物,同时能用对象来描述具体的事物,但是这些事物都是独立的,彼此之间没有应该有 的联系,这样的孤立设计不符合现实逻辑,让事务之间的联系得到描述,所以我们需要继承,例如:发明自行车的人不是一开始就发明了多人自行车,这些都是从双轮自行车演变和发挥而来,但是他们都有共同的特点,有轮子,有车架子等等。让我们用继承的方式把这两个现实的抽象联系起来,这样我们就能设计出不孤立的类,而是和其他类有联系的类。

多态:用一种解决方案来解决一类问题,对于不同的事务解决事务的途径和结果不同。在C++中实现多态性有三种方法,分别是:虚函数、函数重载和运算符重载。这三种方法大家都可以看到我们解决问题的初衷都是一样的,都是利用同名函数,同名的运算符号、这抽象起来也就是解决问题的方法。但是对于不同的事务的反应却是不同的,例如:当用一个 getPadNumber()方法来得到普通自行车和双人自行车的坐垫数量的时候,返回的结果是一个和两个,这就是具体的事务返回的结果不同。

组件的引用和类集会涉及到其他许多不同类型的组件,而且引用组件所产生的的结果要依据实际调用的类型。

C++——oop思想相关推荐

  1. java中oops是什么意思_什么是oop思想_什么是OOPS

    什么是oop思想 OOPS is a programming approach which provides solution to real life problems with the help ...

  2. 三分钟了解Java OOP思想

    Java OOP 思想深度刨析 Java面向对象编程 面向对象编程简称OOP(Object--对象.Oriendted--导向的.Programming--程序设计) 面向对象通俗来讲,就是指使用丰富 ...

  3. OOD知识---对OOA\OOD\OOP思想

            面向对象设计(Object-Oriented Design,OOD)方法是OO方法中一个中间过渡环节.其主要作用是对OOA分析的结果作进一步的规范化整理,以便能够被OOP直接接受.   ...

  4. Java基础 - 1 OOP思想

    (Object-Oriented Programming,OOP)//(面向对象编程,OOP) OOP是一种编程思想,OOP的基本原则是组合,由单个能够起到子程序作用的单元或对象组合而成,即面向对象编 ...

  5. Java面向对象编程的程序设计(OOP)思想

    文章目录 面向对象(oop) 封装 继承 多态 抽象类(abstract) 类型转化(instanceof) static关键字 面向对象(oop) 面向对象程序设计(Object Oriented ...

  6. 冒号课堂 编程范式与OOP思想

    上篇:编程范式与编程语言 第1课 开班导言 第2课 重要范式 第3课 常用范式 第4课 重温范式 第5课 语言小谈 第6课 语言简评 下篇:抽象机制与对象范式 第7课 抽象封装 第8课 抽象接口 第9 ...

  7. C++新手,用OOP思想编写的推箱子小游戏,请多赐教

    1.main函数 #include"Controller.h" void main() {  CController controller;  controller.Init(); ...

  8. 使用OOP思想二次封装echarts

    最近公司写几个报表模块,抽出空余时间简单的封装了一下.对原始的echarts进行二次封装.更方便维护.创建.管理: 源码地址 效果 1.文件目录说明 |-- echarts-extends|-- in ...

  9. 计算机编程oop思想与老子道德经之无有万物

    我们用虚拟的数字计算机来模拟宇宙万物的运行规律. 道,乃电子计算机之设计,之CPU,GPU,Registers,乃操作系统,这些都叫"无". 源代码,是为"有" ...

  10. OOP 思想在 TCC/APIX/GORM 源码中的应用

    动手点关注 干货不迷路 

最新文章

  1. hana::detail::variadic::foldl1用法的测试程序
  2. 【Linux】一步一步学Linux——halt命令(196)
  3. 【译】Immutable.js : 操作 Set -8
  4. java 不显示控制台_命令行启动java程序不显示控制台窗口
  5. java搜索引擎lucene_简单lucene搜索实现(搜索引擎)
  6. 【React性能优化】 redux优化
  7. mysql mariadb 10.4_MariaDB 10.4.1发布,流行的MySQL分支版本
  8. C++调用C#编写的com组件方法
  9. matlab 中for 的控制表达式用数组,循环指数可以为向量
  10. yii2组件之多图上传插件FileInput的详细使用
  11. JavaGUI实现科学计算器
  12. VMware12虚拟机安装
  13. java代码实现一个月内不再提醒,通用到期问题
  14. pymysql:Mysql拒绝从远程访问的解决办法
  15. 太棒了,Github 上面星标10K+ 的阿里巴巴社招面试感悟!(附海量面试复习资料)
  16. 惠头条全行业开户竞价推广投放怎么避免无效点击
  17. Firefox使用大全
  18. SQL13 从titles表获取按照title进行分组
  19. 太极限了,JDK的这个BUG都能被我踩到!
  20. 沧小海笔记本之A7系列FPGA资源介绍

热门文章

  1. @Lookup注解用法
  2. android 简历
  3. 少儿学python 仿真秀_“在家学”仿真:使用Python进行SCDM脚本建模攻略
  4. SRTP RFC4568
  5. 饥荒dns服务器未响应,DNS服务器未响应怎么办
  6. 1299最长上升子序列
  7. Unity 资源包导入报错 “Substance engine failed to load“
  8. Python实现数据透视表
  9. 自定义控件学习笔记(三)Paint详解
  10. 2022年春招牛客网最热门的Java岗面试八股文汇总