面向对象与面向过程
面向过程:一开始是为了科学计算而出现的(就像算数学题一样,就是一步一步解题的过程)。编程的方法是自顶向下。代码的主体:程序=数据(变量)+算法(函数/过程)(这感觉就像在刷题的时候遇到的那些题)。通过函数/过程操纵表现世界的数据与状态。
面向对象:后来软件应用领域的扩张,是为了模拟现实世界的(现实世界就像人与人的交往一样)。编程方法是自底向上。代码的主体:程序=对象+交互(实际项目中才会有那么多的对象和交互吧)。把世界描绘成具有主动性的对象之间交互。
对象
对象可以指自然界中的任何事物;计算机为解决某个领域问题所使用的事物(自然界中的事物的模型化);事物(对象)具有自身的特征或能力;计算机中的对象具有解决问题所需的特征或能力。
对象的特征
封装:将模型的特征和能力打包在一起;模型的改变由模型自身来完成,就像自然界的事物一样;隐藏模型的细节,外界只能使用它,而不必/不能改变他。
继承:符合自然界的分类规律;快速的代码重用。
多态:子类可以继承父类的特征与能力,还可以自定义修改其特征与能力;鸭子类型(后面补充)。
组合:一个模型可以由其他模型组成
练习去:
一款简单自动运行小游戏模拟:在一维的地图上,有一只虫子和一只蚂蚁。
每一次他们都走过一个-3,-2,2,3个随机单位的距离(选定走法,若达
到地图边界则放弃移动)。当蚂蚁、虫子处于同一位置时,蚂蚁吃掉虫子,
程序结束。
面向过程:
面向对象: