上帝和面向对象的七天
上帝用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 ,上帝说你开心就好。
第五天:
当类创生了之后,上帝又发现那么多的类,似乎是有联系的,有很多的类中封装了同样的函数啊。这个问题有点熟悉,和第四天很像,何不在扩展一个‘’基类,父类‘’,作为类的出厂设置??于是分出来了具有基类出厂设置操作的继承,以及允许子类自由发展的多态。
第六天:
上帝总结真谛“编程的关键就是要抽象”
把系统需求抽象成高层的概念,然后再概念层次中进行编程
第七天:
面对依旧不懂的人民,上帝说:"没看到今天周日,不宜动脑吗??"
上帝和面向对象的七天相关推荐
- 面向对象的七种原则:单一职责原则,开放关闭原则
我们的知识星球马上就要开始更新设计模式了,在更新设计模式之前,我们是不是需要做一些准备呢?否则设计模式中一些遵循的原则大家会一头雾水,所以我今天来给大家说一些面向对象的七种原则,有人说是6种有人说是7 ...
- 【JavaSe】面向对象篇(七) 接口
JavaSe·面向对象篇(七) 接口 1. 接口概述 接口,是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量.构造方法和成员方法,那么接口的内部主要就是封装了方法,包含抽象方法 ...
- 面向对象的七种设计原则
下面的截图:主要讲述了七种设计原则定名称,定义以及使用的频率.  原则一:(SRP:Single responsibility principle)单一职责原则又称单一功能原则 核心:解耦和增强内聚 ...
- 面向对象中七个的设计原则
七大设计原则: 开闭原则 单一职责原则 里氏替换原则 依赖倒置原则 接口隔离原则 最少知识原则(迪米特法则) 少用继承多用组合(合成复用) 这些原则的作用:可以让自己设计实现出来的软件系统更加稳定,容 ...
- 面向对象第七章,内存的管理,面向对象三大特征封装、继承、多态
###1.内存管理:由JVM来管理的------了解 1)堆: 1.1)存储new出来的对象(包括实例变量) 1.2)垃圾:没有任何引用指向的对象 垃圾回收器(GC)不定时到内存中清扫垃圾, 回收过程 ...
- 使用java实现面向对象 第七章
第七章 多线程 一.Thread类和Runnable接口 1.在java.lang包中定义了Runnable接口和Thread类. Runnable接口中只定义了一个方法,它的格式为: public ...
- PHP面向对象基础七
PDO类:统一的数据库的初始化操作,包括连接认证和执行SQL指令 PDOStatement类:数据解析操作,主要针对数据结果操作(有数据结果返回) PDOException类,已成处理操作,承兑所有的 ...
- Java面向对象(七)包、内部类、垃圾回收机制
一.包 package 包名: ---- 声明包 注意: 一个java文件中只能有一句package语句 , 并且必须放在java文件首行 . import 包名: --- 导包 impor ...
- CGB2202面向对象第7天
面向对象第七天: 潜艇游戏第一天: 设计6个类,设计World类并测试 潜艇游戏第二天: 给6个类添加构造方法,并测试 潜艇游戏第三天: 设计侦察潜艇数组.鱼雷潜艇数组.水雷潜艇数组.水雷数组.深水炸 ...
最新文章
- android xml 文件里面的宽度Match_Parent 被 替换成了wrap_content
- 2019,顺丰不顺风
- python watchdog 同时检测到多个事件_python中watchdog文件监控与检测上传功能
- 百度地图SDK v3.6.0以上版本找不到PoiOverlay类的解决方法
- SQL LIKE 通配符随笔
- 二分搜索(折半搜索),lower_bound,upper_bound
- 前端学习(2346):使用脚手架工具
- 改进初学者的PID-正反作用
- 2014计算机二级vfp,2014计算机二级VF考前试题解析
- HTTPS 的五大误区,千万别理解错了!
- Linux安装配置硬件温度及风扇转速监测软件(sensor、psensor)
- 计算机怎么更改网络密码,该如何修改自家宽带帐号的密码?
- 小米无线路由器经常连接不上网络连接服务器,小米路由器频繁掉线详细解决方法...
- 安卓手机阅读器_得到电纸书阅读器到底如何,值不值得买?使用一个月后,我告诉你答案!...
- H.264协议:Annex B格式和AVCC格式
- 《六朝隐逸诗学研究》高智(作者)epub+mobi+azw3格式下载
- 用数字计算机公式表白,用最浪漫的数学表白,爱情数学表白公式
- Android短信Messaging数据库字段分析
- 20190313(已解决)对于jsp界面与action界面关系的说明_yingruiyuelin_新浪博客
- x265 windwos使用wsl调试