面向对象编程与面向过程编程的区别

news2024/11/20 19:44:23

面向过程:

以坦克飞机大战为例,如果按面向过程的思路去书写代码,则需要按如下顺序进行编码:

  1. 游戏初始化
  2. 确定一台坦克的位置
  3. 绘制坦克
  4. 确定多架飞机的位置
  5. 绘制飞机
  6. 为坦克设置上下左右四个转向
  7. 为坦克添加按下键盘k键发射子弹
  8. 为所有飞机添加发射子弹功能
  9. 检查坦克发射的子弹是否击中飞机,若击中,飞机从画面中消失
  10. 检查检查飞机发射的子弹是否击中坦克,若击中,坦克从画面中消失,游戏结束
  11. 若所有飞机都被歼灭,玩家胜利,闯关结束

对应代码:

def main():
    game_init()
    create_tank_pos()
    draw_tank()
    create_planes_pos()
    draw_plans()
    set_tank_directions()
    set_kbutton()
    set_planes_bullet()
    check_plane_hit()
    check_tank_hit()
    check_live()

面向对象: 

面向对象的关键是对象两个字,万物皆对象,一个对象就是一个实体;

比如上述坦克飞机大战中,就有三个对象

  • 坦克对象
  • 飞机对象
  • 子弹对象

这三个对象都是看的见、摸得着的实体

定义好上面三个对象以后,再分别定义它上面的属性和行为方法

如坦克对象实现面向过程中的:

-得到1台坦克位置这个功能

-绘制坦克功能

-为坦克设置上下左右不同的四个转向

-为坦克添加按下键盘k键发射子弹

上面是面向对象的构思过程,它从按照划分的几个对象开始,逐步构建出每个对象上的属性和行为方法,这是面向对象设计的核心思想。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/536796.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ATFX国际:国内成品油价格下调,国际油价仍维持震荡态势

ATFX国际:5月16日,发改委发布成品油价格下调通知,其中提到:国内汽、柴油价格每吨分别降低380元和365元。以上海地区为例,价格下调后,每吨汽油的售价为9255元,每吨柴油的价格为8225元。经计算&am…

【容器适配器的认识与模拟】

目录: 前言一、引入二、容器适配器(一)stackdequestack模拟实现 (二)queuequeue模拟实现为什么栈和队列要使用deque (三)priority_queuepriority_queue模拟实现 总结 前言 打怪升级&#xff1a…

小程序获取用户信息实现一键登录

文章目录 旧版获取用户信息实现登录流程login页面代码个人中心页面代码全局app.vue代码下面是小程序获取用户信息最新调整的方式 温馨提示 :以下小程序登录方式只适用于2.27.1版本库以下使用 详情请看微信官方文档调整 旧版获取用户信息实现登录流程 由于我是在hbu…

公司招了一个腾讯拿30K的人,让我见识到了什么是天花板···

前言 人人都有大厂梦,对于软件测试人员来说,BAT 为首的一线互联网公司肯定是自己的心仪对象,毕竟能到这些大厂工作,不仅薪资高待遇好,而且能力技术都能够得到提升,最关键的是还能够给自己镀上一层金&#…

Linux系统防火墙iptables(你委屈什么,爱而不得的又不止你一个)

文章目录 一、iptables防火墙概述1.简介2.netfilter/iptables关系3.iptables的四表五链(1)四表(2)五链 4.数据包过滤的匹配流程(1)入站(2)转发 二、iptables防火墙配置1.下载相关服务…

一个有点好用的信息收集工具

功能 domainscan 调用 subfinder 被动收集,调用 ksubdoamin 进行 dns 验证 泛解析、CDN 判断 获取 domain 相关的 web(host:port)资产,使用 webscan 扫描 webscan 支持 http/https scheme 自动判断 获取 statusCode、contentL…

OpenAI新作Shap-e算法使用教程

一、知识点 Shap-e是基于nerf的开源生成3d模型方案。它是由如今热火朝天的Open AI公司(chatgpt,Dell-E2)开发、开源的。Shap-e生成的速度非常快,输入关键词即可生成简单模型(限于简单单体模型)。 二、环境…

TFTLCD显示实验

实验内容 通过 STM32 的 FSMC 接口来控制 TFTLCD 的显示。 TFTLCD简介 TFT-LCD 即薄膜晶体管液晶显示器。其英文全称为:Thin Film Transistor-Liquid Crystal Display。TFT-LCD 与无源 TN-LCD、STN-LCD 的简单矩阵不同,它在液晶显示屏的每一个象素上都…

Docker笔记7 | 如何使用 Docker Compose 搭建一个拥有权限 认证、TLS 的私有仓库?

7 | 如何使用 Docker Compose 搭建一个拥有权限 认证、TLS 的私有仓库? 1 准备工作2 准备站点证书2.1 创建CA私钥2.2 创建CA根证书请求文件2.3 配置CA根证书2.4 签发根证书2.5 生成站点SSL私钥2.6 私钥生成证书请求文件2.7 配置证书2.8 签署站点SSL证书 3 配置私有仓…

一五一、web+小程序骨架屏整理

骨架屏介绍 请点击查看智能小程序骨架屏 车载小程序骨架屏 车载小程序为方便开发者设置骨架屏,在智能小程序的基础上抽取出骨架屏模板,开发者只需要在 skeleton 文件夹下配置config.json(page 和骨架屏的映射关系文件)即可生效骨…

web自动化测试进阶篇02 ——— BDD与TDD的研究实践

😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡主页地址:【Austin_zhai】 🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。…

Apollo oracle适配

前言:公司数据库统一切换为oracle,减少部署mysql,现需要将Apollo的数据库做oracle适配,当前使用版本为Apollo2.0.0,网上找到最新版本的适配oracle的版本也仅为1.4.0,现决定自己适配。 部分参考了官方介绍的…

使用FFMPEG加载外挂或内封字幕小记

ffmpeg版本: FFMEPEG 4.4 继上一篇实现音视频播放器后,将加载字幕的过程和遇到的坑记录如下: 字幕初识 视频字幕分为三种。 内嵌字幕,字幕与视频图像合二为一,成为视频帧的一部分,也叫硬字幕。 内封字…

数据库完整性

完整性概述 数据库的完整性是指数据库的正确性、一致性、相容性 正确性:数据库的数据符合语义约束 一致性:数据间的逻辑关系是正确的,从一个一致性状态转移到另一个一致性状态 相容性:同一事物的两个数据应当是一致的 约束的分类…

Zookeeper(一)

简介 设计模式角度 Zookeeper:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那…

JDBC从入门到精通

1 JDBC概述 在开发中我们使用的是java语言,那么势必要通过java语言操作数据库中的数据。这就是接下来要学习的JDBC。 1.1 JDBC概念 JDBC 就是使用Java语言操作关系型数据库的一套API 全称:( Java DataBase Connectivity ) Java 数据库连接 我们开发的同…

两年时间,成为测试组老大....

看到行业的前辈都分享一些过往的经历来指导我们这些测试人员,我很尊敬我们的行业前辈,没有他们在前面铺路,如今我们这帮年轻的测试人估计还在碰壁或摸着石头过河,结合前辈们的经验,作为年轻的测试人也有自己的一些职场…

IMX6ULL裸机篇之DDR3的时钟配置

一. MMDC 控制器 对于 I.MX6U 来说,有 DDR 内存控制器,否则的话它怎么连接 DDR 呢?MMDC控制器 就是 I.MX6U 的 DDR内存控制器。 MMDC 外设包含一个内核(MMDC_CORE)和 PHY(MMDC_PHY),内核和 PHY 的功能如下: MMDC 内…

nacos服务端源码集群同步源码分析

nacos集群状态同步源码分析 ServerStatusReporter ServerStatusReporter 是 ServerListManager的内部类 通过Component注解被解析到spring容器中 再通过PostConstruct初始化执行init方法 上边代码启动了一个延时2秒的线程 private class ServerStatusReporter implements Run…

信号时域分析方法

主要参考: 时域分析——有量纲特征值含义一网打尽 信号时域分析方法的理解(峰值因子、脉冲因子、裕度因子、峭度因子、波形因子和偏度等) 重要笔记如下: 建议跟参考笔记同步看。 有量纲特征值8个——最大值、最小值、峰峰值、均值…