美文网首页
再说“对象”这个国度,浅说封装

再说“对象”这个国度,浅说封装

作者: 十维田园 | 来源:发表于2017-07-26 22:25 被阅读0次

    “比较”啰嗦~。~

            自上次刚刚理解了面向对象的思想之后,自己也渐渐形成了自己的面向对象的思路,然而,知识的世界何其浩瀚,有思路也才只是个开始。那面向对象就仿佛这篇符号世界 的一片大陆,那么我们的探索就从这片大陆开始。

           在面向对象这片大陆上,有着三个巨大的过度,他们统治着这里的无数符号子民。这三个国度分别是:封装、继承、多态

          那么首先我们今天就来讲讲面向对象的封装。下面分两种介绍比较:

    一、Python 类的封装

         1.Python中类的讲解是我们上次讲的内容,一句话概括就是:在面向对象的大陆上,各种各样的数据横行霸道,于是,封装“帝国”站了出来,他们提出了“类”的说法,然后将各种具有相似性质的数据进行了分类,随后放在了不同的地方。这就是最简单的类了。

          2.网上的资料都是把类说成抽象化 的一个概念,是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体(即类);我相信大部分都不会听的太懂。所以我在这里将它们给你人化一下。理解起来或许就没那么难了。

          “封装”既然能成一个帝国,肯定有它们的过人之处,他的帝国能够稳固存在也肯定是有他的原因的。那么,在他的帝国之下,有着千千万万的子民,如果只是按照相似的类型放一块的话,那肯定是要出问题的,所以,“封装”就想出了一个神奇的办法,让所有子民有自己的空间,有自己的私有权限,想共享知识就共享,不想共享就不给你看。想看也得先告诉我我才能让你看。于是,这个国度就变得秩序起来。这里我们说的就是类的公有属性,和私有属性了。

            那么形象化讲起来很容易理解,现在就要回到知识上了。在其他语言中,类中的属性共有和私有可能是用Public ,Private来表示的。而我们学习的是Python,在Python中表示的就跟他们不一样了。下面我们以几行简单的代码的对比来演示:

         在这里我们是定义了一个最简单的“人”的类,定义了名字和年龄的属性,相信细心的你们一定会发现定义的两个属性前面都有一个双下划线,那么,我想说,恭喜你们,你们已经发现了封装的最重要的一点。

        这里的双下划线“__”其实就是类似于其他类似Java语言中的Private 的关键字,说明这里的属性是私有的,如果别人不通过“特殊手段”访问的话,是没办法访问的。就彷如“封装”那个国度中每个人都会有自己的存钱罐儿,如果别人想问你存钱罐儿里面有多少钱,你肯定是不会说的吧!毕竟这是私有资产,除非咱俩是非常要好的朋友或者有亲戚关系的话,我才会告诉你这些信息,给你说要通过特殊方法才能看到里面有多少钱。

        上一段中我还提到 了特殊手段, 这里的特殊手段其实就是两方商量好 的特殊方法,通俗来说就是"保险箱的密码",那么在Python中来说就真的 是特殊方法

         细心的人还会发现,每个属性下面都还定义了一个相关的方法,一个是set_**,一个是get_**。这个就是Python中私有属性 的访问方法了。

         所以,拿专业点的说法就是:封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,一特定的访问权限来使用类的成员。

        当然,类不可能只有成员属性,这一类东西肯定不止是一些特征的集合,肯定还会有自己的方法。所以说,类也能定义自己的方法。类的方法定义类似与他的函数定义,所以,只要把他的方法当做函数来理解定义即可。

    相关文章

      网友评论

          本文标题:再说“对象”这个国度,浅说封装

          本文链接:https://www.haomeiwen.com/subject/viookxtx.html