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

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

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

“比较”啰嗦~。~

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

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

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

一、Python 类的封装

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

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

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

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

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

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

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

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

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

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

相关文章

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

    “比较”啰嗦~。~ 自上次刚刚理解了面向对象的思想之后,自己也渐渐形成了自己的面向对象的思路,然而,知识的...

  • 面对对象程序(二)

    面向对象三大特性: 1. 封装 封装是面向对象编程的核心思想。封装的载体是类,对象的属性和行为被封装在这个类中。例...

  • Java Web学习笔记(四):HttpServletRespo

    HttpServletResponse HttpServletResponse对象代表服务器的响应。这个对象中封装...

  • 对象_原型

    问题1:OOP 指什么?有哪些特性 1)面向对象程序设计2)封装 继承 多态封装:构造一个的对象,给这个对象 添...

  • 面向对象的特征有哪些

    封装:讲一个对象封装为一个高度自治和相对封闭的个体,对象的属性(状态),由这个对象的方法(行为)来读取和改变。例如...

  • 面试 | java基础

    面向对象 1、面向对象特征? 封装封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成...

  • python 面向对象封装案例

    面向对象封装案例 目标 封装 小明爱跑步 存放家具 01. 封装 封装 是面向对象编程的一大特点 面向对象编程的 ...

  • 14.Python对象封装

    面向对象封装案例 目标 封装 小明爱跑步 存放家具 01. 封装 封装 是面向对象编程的一大特点 面向对象编程的 ...

  • Python面向对象之二

    面向对象进阶 封装 封装:对外部世界隐藏对象的工作细节。 访问可见性 在前面我们写了一个Student类,在这个类...

  • 面向对象的三大特性:

    面向对象的三大特性,主要表现子哪方面 封装、继承 和 多态。 封装:把属性封装到对象当中 把相同方法封装到对象当中

网友评论

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

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