上帝用7天创造了“面向对象” |【Python之父客串】http://bbs.fishc.com/thread-102596-1-1.html(出处: 鱼C论坛)

第一天:

计算机的诞生使得人类使用汇编语言进行编程,上帝说这个太复杂了,于是将编译的秘密告诉约翰.巴克斯.于是巴克斯创造了第一个高级编程语言Fortran并且获得图灵奖,Fortran的但是使得“人类开始使用高级语言编程,然后编译成机器语言去运行”

高级语言、汇编语言及机器语言的区别_百度文库
https://wenku.baidu.com/view/1402a37dbcd126fff7050be9.html

第二天:

上帝看到进行编程的时候总是一大段一大段的复制粘贴,搞得程序很长。上帝开始急眼了,丫的,你搞这么长是想累死Workspace??于是上帝说:我们构建函数吧,实现重复代码的封装,然后进行调用。但是由于传入的参数太复杂(大型问题)上帝又蒙圈了。上帝提出设计数据结构吧,将格式各样的需要传递的数据也封装一下,成为一个整体,将数据的整体传递给函数。而这些数据体可以事先的定义好规则。有没有很方便?

第三天:

上帝发现数据结构这玩意虽然好用,但是因为他是一个外部定义的不仅仅函数可以调用,其余的猿都可以进行更改啊。这怎么行?要是我这个数据结构存储的是银行账户的数据,可以不适用存钱,取钱的函数接口就直接的改了,这不乱套了吗。于是上帝说我们创建Object吧。

Object就类似于现实生活中我们每个人有自己的属性信息包括(姓名,家庭住址,身高。。。)以及对属性数据操作的行为(年龄的增加,升高的拉长,住地的改变等等)。也就是数据+操作 = =Object  (而数据的属性只能通过这个object的行为访问)

第四天:

上帝发现原来有那么多相似功能操作,年龄增加,升高拉长。每个人都定义一个,这样太麻烦了。何不直接的设定一个出厂设置?在这些群体里大家都要这样的出厂功能,于是上帝想到了类。将Object的相似的操作都封装在类里。通过类初始化对象,然后对象就具有了出厂功能。而函数在操作的时候到底在操作那个对象那??于是有了this。傲娇的Python说我想用self ,上帝说你开心就好。

第五天:

当类创生了之后,上帝又发现那么多的类,似乎是有联系的,有很多的类中封装了同样的函数啊。这个问题有点熟悉,和第四天很像,何不在扩展一个‘’基类,父类‘’,作为类的出厂设置??于是分出来了具有基类出厂设置操作的继承,以及允许子类自由发展的多态。

第六天:

上帝总结真谛“编程的关键就是要抽象”

把系统需求抽象成高层的概念,然后再概念层次中进行编程

第七天:

面对依旧不懂的人民,上帝说:"没看到今天周日,不宜动脑吗??"

上帝和面向对象的七天相关推荐

  1. 面向对象的七种原则:单一职责原则,开放关闭原则

    我们的知识星球马上就要开始更新设计模式了,在更新设计模式之前,我们是不是需要做一些准备呢?否则设计模式中一些遵循的原则大家会一头雾水,所以我今天来给大家说一些面向对象的七种原则,有人说是6种有人说是7 ...

  2. 【JavaSe】面向对象篇(七) 接口

    JavaSe·面向对象篇(七) 接口 1. 接口概述 接口,是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量.构造方法和成员方法,那么接口的内部主要就是封装了方法,包含抽象方法 ...

  3. 面向对象的七种设计原则

    下面的截图:主要讲述了七种设计原则定名称,定义以及使用的频率.  原则一:(SRP:Single responsibility principle)单一职责原则又称单一功能原则 核心:解耦和增强内聚 ...

  4. 面向对象中七个的设计原则

    七大设计原则: 开闭原则 单一职责原则 里氏替换原则 依赖倒置原则 接口隔离原则 最少知识原则(迪米特法则) 少用继承多用组合(合成复用) 这些原则的作用:可以让自己设计实现出来的软件系统更加稳定,容 ...

  5. 面向对象第七章,内存的管理,面向对象三大特征封装、继承、多态

    ###1.内存管理:由JVM来管理的------了解 1)堆: 1.1)存储new出来的对象(包括实例变量) 1.2)垃圾:没有任何引用指向的对象 垃圾回收器(GC)不定时到内存中清扫垃圾, 回收过程 ...

  6. 使用java实现面向对象 第七章

    第七章 多线程 一.Thread类和Runnable接口 1.在java.lang包中定义了Runnable接口和Thread类. Runnable接口中只定义了一个方法,它的格式为: public ...

  7. PHP面向对象基础七

    PDO类:统一的数据库的初始化操作,包括连接认证和执行SQL指令 PDOStatement类:数据解析操作,主要针对数据结果操作(有数据结果返回) PDOException类,已成处理操作,承兑所有的 ...

  8. Java面向对象(七)包、内部类、垃圾回收机制

    一.包 package 包名:  ---- 声明包    注意: 一个java文件中只能有一句package语句 ,  并且必须放在java文件首行 . import 包名: --- 导包 impor ...

  9. CGB2202面向对象第7天

    面向对象第七天: 潜艇游戏第一天: 设计6个类,设计World类并测试 潜艇游戏第二天: 给6个类添加构造方法,并测试 潜艇游戏第三天: 设计侦察潜艇数组.鱼雷潜艇数组.水雷潜艇数组.水雷数组.深水炸 ...

最新文章

  1. android xml 文件里面的宽度Match_Parent 被 替换成了wrap_content
  2. 2019,顺丰不顺风
  3. python watchdog 同时检测到多个事件_python中watchdog文件监控与检测上传功能
  4. 百度地图SDK v3.6.0以上版本找不到PoiOverlay类的解决方法
  5. SQL LIKE 通配符随笔
  6. 二分搜索(折半搜索),lower_bound,upper_bound
  7. 前端学习(2346):使用脚手架工具
  8. 改进初学者的PID-正反作用
  9. 2014计算机二级vfp,2014计算机二级VF考前试题解析
  10. HTTPS 的五大误区,千万别理解错了!
  11. Linux安装配置硬件温度及风扇转速监测软件(sensor、psensor)
  12. 计算机怎么更改网络密码,该如何修改自家宽带帐号的密码?
  13. 小米无线路由器经常连接不上网络连接服务器,小米路由器频繁掉线详细解决方法...
  14. 安卓手机阅读器_得到电纸书阅读器到底如何,值不值得买?使用一个月后,我告诉你答案!...
  15. H.264协议:Annex B格式和AVCC格式
  16. 《六朝隐逸诗学研究》高智(作者)epub+mobi+azw3格式下载
  17. 用数字计算机公式表白,用最浪漫的数学表白,爱情数学表白公式
  18. Android短信Messaging数据库字段分析
  19. 20190313(已解决)对于jsp界面与action界面关系的说明_yingruiyuelin_新浪博客
  20. x265 windwos使用wsl调试

热门文章

  1. 30分钟掌握ES6/ES2015核心内容
  2. ubuntu网卡配置
  3. 线性时间选择问题——分治
  4. 打开云服务器连不上网,云服务器怎么连接网络连接不上
  5. GO语言编程基础-复合类型结构体
  6. 服务器云ide_语言服务器协议如何影响IDE的未来
  7. ios snapkit m_如何使用自动布局和SnapKit在iOS上创建漂亮的拉伸布局
  8. 1048 Find Coins(二分法解法)
  9. 零基础如何选择适合的Java培训课程
  10. 如何开发一个区块链应用程序