面向对象思想的三种通俗解释
1.
假如你去洗澡,你可能是这么考虑的,首先进入浴室,然后打开水龙头冲洗,
最后用浴巾擦干身子,等等一系列过程,叫做面向过程。你用面向过程解决了洗澡这个问题。
那么看面向对象是如何思考的,你是一个对象,浴室、水龙头浴巾等也是对象,
你首先发送消息给浴室,传递力的参数给浴室的门,OK,门打开了,你然后再传递消息给水龙头,
水龙头响应消息,放水,最后你发送消息给浴巾,浴巾调用吸水的方法帮你擦干了身子。OK,
你用面向对象的思想完成了洗澡这个问题。
2.
在一些简单的逻辑上,确实是面向过程更加简单一点,但是当你面对是一系列复杂的模块和功能的时候,
各司其职的面向对象思想变会将很多复杂的逻辑简单化。
举一个这样的例子,想象这样一个场景,你的面前有无数根纠缠在一起的管子,这些管子的用途各不一
样,面向过程的思想,就是你需要亲自的把管子的头和尾搞清楚,以对应上相应的功能;而面向对象的
思想,则是让这些管子自己从管子的头部输入,尾部输出,而不需要编程者自己了解所有的管子的作用.
如果是只有一个管子的话,面向过程是很简单的,面向对象则需要做很多前期处理才能达到目的。
所以面向对象和面向过程其实没有简单的优劣之分,只是适用场合的区别。
3.
来让我用最通俗的话来告诉你!为什么要发明面向对象编程?
原因很简单,就是为了适应变化,我们的编程祖先们曾经在开发大型项目时,在改需求的时候自杀了好几批人
你拿着自己开发游戏,每做一步就想,这里假如产生了变化会怎样,这里假如要添加个功能会不会很麻烦?
为了解决这些问题,所以就有了面向对象思想:封装,继承,多态;
其实用了那么多抽象的东西,为的就是解决一个问题,项目要能做到轻松变化。今天三角形,明天正方形,后天,菱形
面向对象思想的三种通俗解释相关推荐
- php面向对象有哪三种访问控制模式,第三节 访问控制的实现
第三节 访问控制的实现 面向对象的三大特性(封装.继承.多态),其中封装是一个非常重要的特性.封装隐藏了对象内部的细节和实现,使对象能够集中而完整的描述并对应一个具体的事物,只提供对外的访问接口,这样 ...
- Data Guard 三种模式解释
Data Guard 保护模式(Data Guard Protection Modes) 对于 Data Guard 而言,其生存逻辑非常简单,由于它提供了三种数据保护的模式,我们又亲切的叫它:有三模 ...
- 西门子PLC 冷启动、暖启动、热启动的一种通俗解释
不知道是不是翻译问题,在查阅官方文档的过程中,遇到了一些表述含义接近的名词,个人认为这是对同一个单词的几种不同翻译,因此在文章中,将这几种名词进行合并,只给出了最贴切的名词. 1 S7-CPU 操作模 ...
- 【Java面向对象编程——喂养三种宠物】
文章目录 (一)编程实现 1.创建动物类 2.继承动物类,创建猫类 3.继承动物类,创建狗类 4.继承动物类,创建鸟类 5.创建学生类 6.创建测试学生类 7.运行程序,查看结果 (二)知识点讲解 动 ...
- 在java中三种编程思想(OOA,OOD,OOP)
在java中三种编程思想:OOA,OOD,OOP OOA 一.OOA的主要原则. 二.面向对象分析产生三种分析模型 三.OOA的主要优点 四.OOA方法的基本步骤 OOD 一.OOD背景知识 二.OO ...
- 算法--三种方法求连续子数组的最大和
这是一道考的烂的不能再烂的题目,但是依然有很多公司乐于将这样的题目作为笔试或面试题,足见其经典. 题目描述: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子 ...
- 对于二叉树三种非递归遍历方式的理解
利用栈实现二叉树的先序,中序,后序遍历的非递归操作 栈是一种先进后出的数据结构,其本质应是记录作用,支撑回溯(即按原路线返回):因此,基于其的二叉树遍历操作深刻的体现了其特性: 若后续的输入和其前面的 ...
- 数据分布策略_有效数据项目的三种策略
数据分布策略 Many data science projects do not go into production, why is that? There is no doubt in my mi ...
- Java面向对象思想、类的定义、对象的使用、对象内存图、成员变量和局部变量的区别、封装、private关键字、this关键字、构造方法、JavaBean-day06
目录 第1节 面向对象思想 1.1 面向对象思想概述 概述 举例 特点 1.2 类和对象 什么是对象 类与对象的关系 1.3 类的定义 事物与类的对比 类的定义格式 1.4 对象的使用 对象的使用格式 ...
最新文章
- Spark最新的两大研发方向深度学习和结构化流处理
- Oracle 11g Dataguard参数详解
- 新浪微博搜索php待遇,新浪微博面试
- 前端学习(1530):钩子函数--代码演示(面试重点)
- 【NOIp模拟】【二分答案】电缆老板
- No module named sqlite3解决
- dllregisterserver找不到入口点_厨房间漏水找不到漏水点,厨房上面漏水 | 影楼
- 华三 h3c 交换机链路聚合
- C语言实现数字串转数字
- Behavior Creator 行为树可视化编辑器
- python_day6_面向对象的介绍/构造函数/类变量和实例变量/析构函数/私有属性和私有方法/继承、多继承和继承实例/多态
- 1875.贝茜的报复
- Vue引入百度地图警告:A Parser-blocking, cross site (i.e. different eTLD+1) script....
- html5 i标签什么意思,快速了解HTML5 b和i标签
- 近视200度能学计算机吗,近视200度严重吗
- 《蜘蛛侠:平行宇宙》的视觉解析与滤镜实现
- 用auto.js写了一个抖音点赞、关注的脚本
- java p2p 技术可行性分析_Atitit JAVA p2p设计与总结 JXTA 2
- 关于/dev/null 和 /dev/zero文件详解以及误删/dev/null和/dev/zero的解决方法和利用/dev/zero进行磁盘IO测试方法
- Ae 效果详解:3D 摄像机跟踪器