资讯专栏INFORMATION COLUMN

Python中什么是面向对象-封装

cangck_X / 796人阅读

摘要:文字有点长,对于不想看文字的朋友,可以去这里看视频,内容和这个文字一样的,视频可能更好理解回顾面向过程前面我们已经学过了面向过程我们知道,面向过程的时候,我们的关注点是步骤面向过程做事,就是把一件事情分割为多个步骤,然后依次去完成每一个步骤

文字有点长,对于不想看文字的朋友,可以去这里看视频,内容和这个文字一样的,视频可能更好理解
https://www.piqizhu.com/v/yjB...
回顾面向过程

前面我们已经学过了 面向过程

我们知道,面向过程 的时候,我们的关注点是 步骤

面向过程做事,就是把 一件事情 分割为多个步骤, 然后依次去完成每一个步骤

这样做事可以让我们的事情变的很明朗,不会弄乱

那么,

既然有了面向过程,为什么还要跑出来一个面向对象呢?

面向对象是什么东西呢?有啥好处?

他和面向过程有啥关系呢? 他们两个我们应该选谁呢?

带着这么3个问题,开始本节课的讲解

面向对象概述

所谓面向对象,

意思就是,我们的关注点 是对象, 而非过程(步骤)

那么,这里的对象是啥意思呢?

要回答这个问题, 就必须先回到实际的案例中去讲解

上节课的我们的案例是制作一个玩具鸭子,我们的关注点是制作鸭子的每一个步骤

如果我们只是捏个泥娃娃,或者制作一个简单的玩具鸭子, 使用面向过程,是没有多大问题的

但是如果我们面对的一个复杂的事情呢?

有一家玩具公司,这家玩具公司不止生成玩具鸭,还生产玩具狗,玩具猫,玩具猫头鹰, 。。。。。 等等 100多种玩具

如果按照之前的 面向过程思路,那么我们的代码 会很长, 很杂乱, 那 怎么办呢?

这时候就需要使用面向对象的思路来解决问题了

面向对象-封装

于是某一天,,这家玩具公司有了一台鸭子制造机器,

这台机器,当我们按下开关后,它就会立刻开始制作玩具鸭子,

此刻,我们不再去关注先做脚,还是先做头, 还是身体,

这台机器会帮我们搞定所有步骤, 我们只需要在机器的出口处,等着完整的玩具鸭子出来就可以了

这时候,我们的关注点,就是这台机器本身,而不是制作鸭子的某一个步骤

这台机器,此刻就是一个对象(整体),此刻,我们就开始了面向对象

可能到这里大家还是不明白,还是有点糊涂,这是正常的, 请允许我再来解释解释

这台鸭子制造机器,包含了 以前制造鸭子的所有步骤,它把制作鸭子的步骤,封装在了机器内部, 留给我们的,只有一个开关,我们只需要按开关,就可以开始制造鸭子

而以前的面向过程,我们需要关注制造鸭子的细节,需要先制作鸭头,然后制作翅膀,然后....

但是,当我们有了一台封装了详细步骤的机器,只需要关心什么时候按开关,别的都不用关心

这就是面向对象的第一个特性(好处)封装

封装特性,可以把复杂的信息,流程,包起来,内部处理,

让使用者不去关注细节, 只关心什么时候按开关,

如此一来当我们要制作鸭子的时候,只要按开关就可以了,是不是省心很多??

再来举个例子

比如,某一天,你以程序员的身份,去某家公司工作,老板让你开发一个网站,

此刻,老板就是面向了对象,这里的对象,在老板眼里 就是你, 因为老板只要把任务丢给你,他不关注你用什么电脑写代码,也不关注你用什么输入法,不会关注你写代码的时候听什么歌,不会关注你写代码的时候是穿拖鞋好,还是光脚丫好, 更加不会关注你今天穿什么颜色的内裤 写代码效率更高;

但是在你自己的角度,你就是面向过程的,你会关心自己用哪个电脑写代码更舒服, 你会关注自己用哪个输入法效率更高,你还会关注写代码应该听什么歌.. 等等

而,当你写代码的时候,你使用的电脑,对于你而言,也是一个封装好的对象, 当你在键盘上按下字母A, 你不会关注电脑内部究竟发生了 多么复杂的化学反应, 你只关注,我按了键盘上的字母A,电脑就要显示一个A在屏幕上

同样的道理,我们用的手机,也是一个封装的很好的对象,我们想打电话给某人,输入对方的号码, 点击拨号就可以接通对方, 我们不会关注按下每个数字以后,手机内部发生的复杂原理,更加不会关注手机是怎么连接基站的,也不会关注手机内部是怎么与基站进行信号交换的, 我们的关注点就是, 我要打电话给 张三,要和他说说话,其他复杂的事情手机会帮我搞定

再举例, 我们玩的手机游戏、电脑游戏,也算是一个对象,在游戏里,当我们按下技能发射按钮,我希望能发射一个技能出去, 我不关注按下按钮后,手机是怎么检测到我的手指的,也不会关注,手机是怎么把技能光环显示在屏幕上的,更加不会关注,敌人死了以后,手机究竟给服务器发送了什么信息, 我只关心, 当我按了按钮,就发射技能,当敌人死了,他就倒下并且无法再攻击我

你现在明白了吗, 程序员、工程师,把复杂的东西封装起来,留给我们的,只是非常简单的操作按钮, 可以让我们做事情 更加高效,更加快乐

而那家玩具公司,有100多种玩具,原本需要关注几千个生产步骤,如今,有了面向对象,只要把每个玩具的制作流程封装成机器,然后只关注100个机器的按钮就可以了,

如果这家公司的老板还想再简化,那就雇佣100个员工来负责这100台机器的运行, 然后给这100个员工雇佣1个主管

而老板自己,则只需要面对主管一个人就行了,你看,经过层层封装,最后多简单啊

对象 可以是我们生活中任何的 人、事、物

而几乎所有对象都具有了封装的特性,你能想到什么对象没有封装的特性吗?

以上,这就是面向对象的第一个特性, 封装

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43662.html

相关文章

  • 浅谈JavaScript的面向对象和它的封装、继承、多态

    摘要:会造成内存浪费的问题构造函数继承声明父类声明子类生成实例组合式继承组合式继承是汲取了两者的优点,既避免了内存浪费,又使得每个实例化的子类互不影响。 写在前面 既然是浅谈,就不会从原理上深度分析,只是帮助我们更好地理解... 面向对象与面向过程 面向对象和面向过程是两种不同的编程思想,刚开始接触编程的时候,我们大都是从面向过程起步的,毕竟像我一样,大家接触的第一门计算机语言大概率都是C语...

    MAX_zuo 评论0 收藏0
  • [Python3]Python面向对象的程序设计

    摘要:于发表了著名的有害论的论文引起了长达数年的论战并由此产生了结构化程序设计方法。到现在为止面向对象已经成为了主流的开发思想。面向对象的程序设计优点解决了程序的扩展性。 [Python3]Python面向对象的程序设计 一、面向对象的程序设计的由来 1.第一阶段:面向机器,1940年以前 最早的程序设计都是采用机器语言来编写的,直接使用二进制码来表示机器能够识别和执行的指令和数据。 简单来...

    OpenDigg 评论0 收藏0
  • 不用看网课就能学到python的文章(第五天)

    摘要:类其实就是由属性和方法组成的一个抽象概念。类和对象的关系类是模板,对象是根据类这个模板创建出来的,应该先有类,再有对象。使用同一个类,能够创建出很多对象。不同对象对应的属性值也会不同。 目录 类 对象(实例) 类中的成员 面向对象 变量 类 类是对一群具有相同 特征 或者 行为 的...

    wenzi 评论0 收藏0
  • 【数据科学系统学习】Python # 编程基础[三]

    摘要:新的称为子类,而被继承的称为基类父类或超类。继承最大的好处是子类获得了父类的全部功能。在继承关系中,如果一个实例的数据类型是某个子类,那它的数据类型也可以被看做是父类。 在上一篇中我们介绍了模块和数据结构,这一篇将介绍面向对象编程。 面向对象编程 面向对象编程——Object Oriented Programming,简称 OOP,是一种程序设计思想。OOP 把对象作为程序的基本单元...

    molyzzx 评论0 收藏0
  • [零基础学python]关于类的初步认识

    摘要:反对者在某些领域对此予以否认。下面再引用一段来自维基百科中关于的历史。类的更严格的定义是由某种特定的元数据所组成的内聚的包。类还可以有运行时表示形式元对象,它为操作与类相关的元数据提供了运行时支持。 在开始部分,请看官非常非常耐心地阅读下面几个枯燥的术语解释,本来这不符合本教程的风格,但是,请看官谅解,因为列位将来一定要阅读枯燥的东西的。这些枯燥的属于解释,均来自维基百科。 1、问题...

    王岩威 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<