前言:每当提到面向对象的时候,初学者肯定都是一脸懵逼的状态,到底什么是面向对象?会用面向对象后有什么牛逼之处吗?不会用是不是就会死掉?答案肯定不会死掉,我们可以来简单的举一  个栗子

  1、当你想到熊猫的时候你想到了什么?                 答:“国宝”  2、当你看到“国宝”穿上衣服的时候你想到了什么名字?     答:“功夫熊猫”;  

  其实你可以理解成面向对象就是一种武功!你可以想象一下会武功和不会武功的人有什么区别?“走路带风、飞檐走壁、不食人间烟火、让妹子一看你就走不动路了....”,好咱们先意淫到  这里,接下来你可以在想一下普通人不会武功能不能在这个社会上生存,答案是肯定可以,接下来咱们回到咱们的编程中,如果你不会面向对象难到就不能写代码了吗?不会的,你还会继续做你的码农!   只是当你会用面向对象写东西的时候你就会发现你的思维逻辑、你的撸代码的水平、以及你撸代码的姿势都不一样了。因为你有可能在一点点的走向中级或者高级程序员!!!好了我不装逼了下面我们正式开始了解面向对象

首先我们先来了解下我们以前写代码的一种思路:面向过程什么是面向过程?  我们先来举第一个小"栗子"

   当刚进游戏的时候我们肯定会先学习盲僧的Q技能,然后等等级上来以后我们在去学习盲僧的W技能,等到3级以后我们在去学习盲僧的E技能,依次类型,最后等到6级的时候我们肯定会

    学习R技能,因为你迫不及待的想秀一波你的R闪-------其实编程就像咱们玩游戏一样技能一步一步的来。在编程里面如果我们想要做某一个效果,首先我们必须获取到相关的对象,然

   后在给这个对象加一些相应的预处理函数......然后在做下一步操作!其实向这样的一个过程就是面向过程的编写方式!其实你也可以理解成javascript的同步操作!同步操作?什么是

   同步?老师你在搞什么鬼,面向过程我还在懵逼状态怎么现在又跑到同步操作了?别急我们一步步来

什么是javascript中的同步&&异步?

  让我们在来举一个例子!

    同步:在javascript的编程思想里面你可以这样理解----》买菜--->洗菜--->切菜--->炒菜!这4步就是一步一步地完成,它的顺序很重要,你只能一步步去实现!这样的一个过程

       其实就是同步,在咱们的编程中顺序执行其实就是同步的思维,你也可以理解成当去执行某一件事件的时候就不能再去执行其他事件了

     异步:边洗脚边看电视、边唱歌边跳舞、边打LOL边骂人、边吃饭边上厕所(貌似这个栗子有点味道)...其实异步也就是当去执行某一件事情的时候不会影响另一件事情的执行

当我们了解了什么是同步和异步后我们在回来看一下什么是面向过程?

  上面我们已经解释了面向过程跟我们的同步特别类似,所有的事情都是一步步来执行的,无法跳过某一个环节去执行下一个环节,例如你总不能不买菜就去炒菜了吧?在咱们的代码中也是

  这样的你必须先获取一个对象然后在给这个对象加一个事件;这样的一些过程其实就是面向过程

   

最后我们以专业的角度来解释下面向过程

  面向过程:以过程为核心,解决问题时,考虑的是每一步该怎么做

 

面向对象

  什么是面向对象?    我们先用大白话来解释一波:面向对象的思想最早不是在编程中出现,而是在管理学中出现的。举一个栗子:一个公司布置了一个任务,给其中的一个领导者分配了10个人,他用了    10天时间完成了这份工作,而另一个领导者分配了5个人,用3天时间就完成了这个工作。后者是觉大多数公司最想要的一个人才,因为这个人能够懂得如何合理的分工,分配任务。          而在我们代码中也是一样的,同样一个功能如果一个人去写那么可能会耗费很长时间,当写完这个功能的时候,产品狗又让你去修改某一块的一个需求的时候你回瞬间崩溃,因为每一    个程序员都有一个共同的心声,那就是让我写代码行,但是千万别让我去改代码。但是如果我们要用面向对象的思维去书写代码的时候我们就在也不用害怕产品狗让我们去改某一个需    求了,因为面向对象的思维就是把一个“大问题分成若干个小问题,并试图分工协作来完成”,这也是我们今后要学习模块化的一个思想

    说了这么多概念性的面向对象思想,下面我们来举一个实际的栗子来了解一下面向对象的思想      谷歌的模块化手机      

    谷歌的模块化手机其实跟我们的面向对象编程思维特别类型,这款手机的一个优势就在于

      如果摄像头坏了,你只需要换一个摄像头模块就可以了

      如果手机听筒坏了,那么你只需要换一个手机听筒的模块就可以了

      如果你想给这个手机安装一个外接键盘,那么只需要安装一个外接键盘的模块就可以了

      如果你想给这个手机安装一个定时炸弹,那么你只需要安装一个定时炸弹的模块就可以了......

    我们的面向对象编程思想也是如此,我们可以把一个功能中的一些方法当做一个模块,这样我们就可以分工协作,同样也不用担心某一个环节需要有所变动,如果需要有变动那么我们只

    需要改动相应的模块即可

 下面我们在来举一个栗子------(请不要嫌我啰嗦,只要你能明白了面向对象的编程思维那么编写代码更本就不是问题)

    我们可以想一个问题,在远古时代有没有这样一种人,他的心肝脾肺肾可以用一个器官来代替?可能会有这样一批人,但是这样的一批人为什么没有活到了现在呢?因为他们的弱点非

    常明显,想要杀死这个人只需要把这个综合器官干掉就可以了,这也是好多科幻电影里面的场景,一个boos特别厉害,但是到电影快要结尾的时候发现了它某个弱点,然后一个大招把

    他给干死了。

    回到现实当中,现在人的身体其实就可以理解成一个面向对象的编程思维,身体的每一个器官都是一个模块,都负责相应的事情,如果某一个器官出了问题那么只需要去根治这个器官就

    可以了,而不至于死亡!

以上的一些栗子就是面向对象的编程思维,不知道大家能不能理解。下面我们将总结一下面向对象的编程思维

  面向对象的编程思维:面向对象思维主张的是:团队---配合---分工---协作,将大问题拆分成诺干个小问题,并试图用分工协作来完成。这也是我们长说的一句话“高内聚、低耦合”

【注】:如需转载请注明出处,码字不容易!请理解----如有不同理解,请大神多多指点

传送门:http://www.cnblogs.com/nanianqiming/p/7711496.html

转载于:https://www.cnblogs.com/mp-0518/p/11440501.html

【面向对象】用大白话扯扯那神奇的面向对象编程思维(一)相关推荐

  1. 兄弟,用大白话告诉你小白都能看懂的Hadoop架构原理

    本文来自:石杉的架构笔记 目录 一.前奏 二.HDFS的NameNode架构原理 一.前奏 Hadoop是目前大数据领域最主流的一套技术体系,包含了多种技术. 包括HDFS(分布式文件系统),YARN ...

  2. 用大白话彻底搞懂 HBase RowKey 详细设计

    来源 | 且听_风吟 来源 | CSDN 博客,责编 | Carol 封图 | CSDN 付费下载于东方 IC 前言 RowKey作为HBase的核心知识点,RowKey设计会影响到数据在HBase中 ...

  3. 用大白话彻底搞懂 HBase RowKey 详细设计!

    来源 | 且听_风吟 来源 | CSDN 博客,责编 | Carol 封图 | CSDN 付费下载于东方 IC 前言 RowKey作为HBase的核心知识点,RowKey设计会影响到数据在HBase中 ...

  4. 面向对象(类的概念,属性,方法,属性的声明,面向对象编程思维

    1 面向对象 1.1 你是如何认识新事物的? 从过往的事物中总结事物的特点(特征),并比对新事物,把新事物进行归类. 1.2 类(Class)的概念(A) 类是对一组具有相同特征和行为的对象的抽象描述 ...

  5. [python]两种编程思维--面向过程和面向对象

    例如:eg:炒一份西红柿鸡蛋 一.面向过程 面向过程的编程思维,如下 二.面向对象 制作一台炒菜机器人,然后告诉机器人做一道西红柿炒鸡蛋.在这里,我们直接面对的是机器人,而非炒菜的过程,所以这里机器人 ...

  6. python中面向对象的ui_怎样理解Python中的面向对象?

    面向对象(Object Oriented)是程序开发领域中的重要思想,这种思想模拟了人类认识客观世界的逻辑,是当前计算机软件工程学的主流方法:类是面向对象的实现手段.Python在设计之初就已经是一门 ...

  7. 面向对象测试与传统软件测试有何异同,面向对象软件测试与传统测试有何区别...

    由于面向对象技术具有封装.继承.多态等新的特性,带来了传统程序设计所不存在的错误,导致原来行之有效的软件测试技术对面向对象技术开发的软件有些力不从心. 面向对象软件测试与传统软件测试有以下不同: 测试 ...

  8. 《面向对象分析与设计》一1.4面向对象方法的主要优点

    1.4面向对象方法的主要优点 本节从认识论的角度和软件工程方法的角度看一下面向对象方法带来的益处,并把面向对象方法与传统方法进行比较,看面向对象方法有什么优点. 从认识论的角度面向对象方法改变了开发软 ...

  9. 发那可g10_连载七|FANUC神奇的G10编程指令功能使用方法

    FANUC神奇的G10编程指令功能使用方法 共享屋精彩 在之前分享过一篇关于加工编程需要注意的一些操作,如果你需要查看,可以在文章的末尾往期经典回顾栏目找到相关文章链接. 写文章最大的乐趣是什么?有人 ...

最新文章

  1. java 苹果vcf解析_VCF文件格式解析
  2. LeetCode--046--全排列(java)
  3. More Effective C++:理解new和delete
  4. C语言合理字符的代码,改善C语言程序代码的125个建议,第62到89个建议!
  5. oracle:表空间使用率,表空间扩容
  6. 推动数据中心绿色转型(经济透视)
  7. gin ajax 获取请求参数,go的gin框架从请求中获取参数的方法
  8. 关于解决form表单记录上次保存填写记录清空
  9. 软件工程师必学的9件事
  10. ir指令、立即数的作用_ARM-汇编指令集(总结)
  11. mysql5.6忘记立马_MySQL 5.7 安装完成后,立即要调整的性能选项
  12. 从零开始学Pytorch(零)之安装Pytorch
  13. GeneDock协助诊断基层地区的听力障碍儿童 #科技有温度#
  14. cocos2d0基础篇笔记二
  15. 用ISO TOOL破解游戏 图文
  16. gephi用安装java吗_Gephi安装
  17. jdk动态代理详解(通俗易懂,5分钟带你快速理解动态代理)全网最简
  18. android applock 源码,AppLock | F-Droid - Free and Open Source Android App Repository
  19. 51单片机——蜂鸣器按照次数响起1.0
  20. 关于AS(Android studio)添加recyclerview控件后的进一步仿微信界面

热门文章

  1. WLAN基础知识--认识WLAN基本概念
  2. 通俗的讲讲数据库系统的四个基本概念
  3. N,N‘-羰基二咪唑cas:530-62-1零长度交联剂CDI 垫片臂长/间隔长度0.0 Å齐岳说明
  4. Docker构建redis集群
  5. 南京大学计算机考研机试,2018南大CS考研机试回忆版
  6. opencv 一 基本运行环境配置(下载安装、编写代码、配置环境)
  7. LR算法推导和损失函数详解
  8. Python3.7将普通图片(png)转换为SVG图片格式并且让你的网站Logo(图标)从此”动”起来
  9. 案例:EVE和ENSP对接LLDP协议
  10. 计算机算法专业英语,IT英语1-计算机算法常用术语中英对照