本文转载至:https://blog.csdn.net/q34323201/article/details/80198271。

OOP面向对象编程。OOP思想中很重要的有五点,类,对象,还有面向对象的三大特征:继承,多态和封装。

:对现实世界食物的抽象表示,包括事物的状态信息(成员变量)和行为信息(成员方法)。我们要让我们的计算机程序设计更有意思,也更有逻辑性,则我们的程序中对事物的描述就必须符合真实情况,同时符合人类的思维习惯。因此,我们如果在计算中要描述人这个事物,也是一类事务,我们就必须把该事物的所有特点包含进来,用成员变量描述人的基本属性,如:身高,体重,年龄,性别等。用成员方法来描述人的活动,如:吃饭、洗澡、睡觉等。

对象:对抽象事务的具体表示,使其具有自身的特点。类好比一个大的集合,里面的元素都有共同的特点,但是其中每个元素又具有自身的特点,对象就是这样,它是一个类的具体化,也是实例化,类是泛指,而对象是特指。虽然人都有身高、体重、年龄,同时有行为有吃饭,洗澡,睡觉等,但是当具体到某个人的时候就会有不同,例如:老人和小孩的年龄就有不同,所以,从类到对象是我们把现实事物进行计算机描述的过程,同时也是一个从抽象到具体的过程。

面向对象的三大特征:

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

继承:让抽象出来的事物具有本应该具有的联系。用继承的关系把不同现实的抽象联系起来,这样就能设计出 不孤立的类,而是和其他类有联系的类。子类继承了父类所有的成员方法和属性,并且可以拥有自己的特性。继承解决了代码的重用问题。

封装:封装是指将对象信息状态通过访问权限修饰符隐藏在对象内部,不允许外部程序直接访问,如果外部程序要访问对象内部,可以调用内部提供的方法。简单来说,封装可以对自身数据进行保护,并且找出某一类事物的公性然后提取出来

转:怎样理解OOP?OOP又是什么?的更多相关文章

  1. 我所理解的OOP——UML六种关系

    最近由于经常给公司的小伙伴儿们讲一些OOP的基本东西,每次草纸都被我弄的很尴尬,画来画去自己都乱了,有时候也会尝试使用UML表示类之间的关系,但UML从毕业后就再也没接触过了,经常会被小伙伴儿们指出继 ...

  2. (转)我所理解的OOP——UML六种关系

    原文地址:http://www.cnblogs.com/dolphinX/p/3296681.html 最近由于经常给公司的小伙伴儿们讲一些OOP的基本东西,每次草纸都被我弄的很尴尬,画来画去自己都乱 ...

  3. 我所理解的OOP——UML六种关系(转)

    转自:http://www.cnblogs.com/dolphinX/p/3296681.html 最近由于经常给公司的小伙伴儿们讲一些OOP的基本东西,每次草纸都被我弄的很尴尬,画来画去自己都乱了, ...

  4. OOP思想应该怎样来理解?

    https://blog.csdn.net/qq157962718/article/details/50990154 https://www.cnblogs.com/xiaosongluffy/p/5 ...

  5. OOP感悟

    行内讲的最多的就是出来一年内基本靠copy,一年后才基本懂得如何去写代码,而理解领悟oop,需要的时间却不定. 我工作中,我发现很多人拿着面向对相当的语言作者做着面向过程的事情,不需要知其所以然,只要 ...

  6. c++ :OOP之静态类型与动态类型

    所谓静态类型即类型指针或引用的字面类型:而动态类型即类型指针或引用的实际类型. 这一对概念一般发生在基类和派生类之间. 如: class Base { ..... } class Derived : ...

  7. python oop培训文档里面的 正宗oop、多个函数间反复return传参、多个文件无限复制粘贴扣字、无效废物滑稽类4种方式的例子。(2)

    把文档里面说的几种范式发出来. 4种编程范式实现一个人吃喝拉撒长身体的代码.语法很简单,思想模拟了所有程序员写代码时候的代码规划设计想法. 0.我不反对复制粘贴的写法,可以百度搜索复制粘贴网上现有的, ...

  8. Java学习之路 第四篇 oop和class (面向对象和类)

    本人水平有限,创作本文是为了记录学习和帮助初学者学习,欢迎指正和补充 一.面向对象编程的设计概述 很多同学都在学校学了电脑的编程,现在的书籍大部分都是oop面向对象编程,一个很抽象的的名字,比较难以理 ...

  9. php面向对象编程(oop)基础知识示例解释

    面向对象并不是一种技术,而是一种思想,是一种解决问题的最基本的思维方式!如何理解使用?OOP:面向对象编程 (直接代码说明) 1.面向对象的基本概念 示例demo: <?php header(& ...

  10. Swift -POP( 面向协议编程)与OOP(面向对象编程)

    面向协议编程(Protocol Oriented Programming,简称POP),是Swift的一种编程范式,Apple于2015年WWDC提出的,如果大家看Swift的标准库,就会看到大量PO ...

随机推荐

  1. c# $ @特殊字符

    c# @ 停止字符串中的转义字符,让字符串内的转义字符当正常字符输入. 因此,如果你需要类似"所见所得"效果的赋值,逐字字符串赋值方式会是你的首选!此外,需要注意的是,当使用符号 ...

  2. C#(1):XML DOM、System.Xml.XmlDocument

     一.XML DOM概述 XML 文档大小写敏感.属性用引号括起来,每一个标记都要闭合. DOM是XML文档的内存中树状的表示形式. 继承关系图: XmlNode;//XML节点 ......Xml ...

  3. 【C#版本】微信公众号模板消息对接(一)(图文详解)

    特此说明:本篇文章为个人原创文章,创作不易,未经作者本人同意.许可等条件,不得以任何形式搬运.转载.抄袭(等包括但不限于此手段)本文章,否则保留追究有关侵权人责任的权利 一.认识微信公众号模板消息 什 ...

  4. Python:GUI库tkinter(三)

    这一章是对前两章的总结: Python:GUI库tkinter(一) Python:GUI库tkinter(二) 前两章是对控件的介绍,第一章可以知道各控件使用时的具体参数,第二章以具体的例子展示了每 ...

  5. QT ——TCP接收到的数据出现乱码情况

    这个项目是写一个利用TCP来传输.bin的并文件,接收端是将接收到的.bin并文件直接在串口助手中进行读取. 但是从读取的结果来看发现传输过来得数据是错误的,与原数据不相符,由于服务端是直接对并文件在 ...

  6. 获取HTML中所有图片的 URL

    /// <summary> /// 获取HTML中所有图片的 URL /// </summary> /// <param name="strHtml" ...

  7. c语言刷lleetcode记录

    155. 最小栈 笔记: 在push(压栈)的时候思路: typedef struct MinStack{ int data; struct MinStack *next; } MinStack; / ...

  8. python面试_总结03_列表练习题

    1.列表练习题 完成下列列表相关的编程题,先运行下列的test函数,在完成每道题之后,都可以通过调用test函数检测所写函数对错. def test(got, expected): if got == ...

  9. VIM中简化删除,光标移动和查找操作

    # 一.命令行模式下简化删除 1. 向后删除单个字符:[x] 2. 向前删除单个字符:[X] 3. 删除从光标开始到单词结尾:[dw] 删除从光标后的2个单词:[d2w] 4. 删除整个单词:[daw ...

  10. vue项目启动报错 spawn cmd ENOENT errno: -4058

    vue项目启动报错 spawn cmd ENOENT errno: -4058 运行vue项目(npm run dev)报错 提示 'npm' 不是内部或外部命令 cmd输入node -v 有版本号 ...