面向对象和面向过程详解

说到面向对象,我们都知道C#, Java, C++, python, JS… 都是面向对象的编程语言

说到面向过程,我们都知道C,fortran等都是面向过程的编程语言

今天我们来说说,面向对象和面向过程到底有哪些不同?

面向对象的优缺点

优点;通过封装,继承,多态把程序的耦合度降低, 用设计模式使程序更加灵活,容易修改, 并且易于重用. 缩短开发周期, 重用性和继承性高, 降低了重复的工作量,

缺点;程序处理效率会降低

面向过程的优缺点

优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程开发,性能是最重要的因素。
缺点:没有面向对象易维护、易复用、易扩展

面向对象和面向过程的区别?(面向对象是一种解决问题的思想.)

一,面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

二,面向对象是空间逻辑思维,实在程序的各部分的拼接;

面向过程是时间逻辑思维,走从前到后的过程。

三,面向对象是一种以事物为中心的编程思想,注重的是对象本身

面向过程就是以过程为中心的编程思想,注重的是实现程序这个过程

四,面向对象是把这个目标拆解成不同的小目标,每个目标有自己的功能。

面向过程和面向对象都是为了解决问题,面向过程是立一个目标,分步骤解决。

例如;五子棋游戏

面向过程的设计思路

首先分析问题的步骤:

1、开始游戏,
2、黑子先走,
3、绘制画面,
4、判断输赢,
5、轮到白子,
6、绘制画面,
7、判断输赢,
8、返回步骤2,
9、输出最后结果。把上面每个步骤用不同的方法来实现。

面向对象的设计思想

面向对象的设计则是从另外的思路来解决问题

1、黑白双方,这两方的行为是一模一样的,
2、棋盘系统,负责绘制画面,
3、规则系统,负责判定诸如犯规、输赢等。
第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。

对象;

对象就是现实世界存在的任何事务都可以称之为对象,有着自己独特的个性

对象的构成;

属性+方法+事件

面向对象三大特性

封装性、继承性和多态性,

这里先不进行解释,以后会陆续更新.

面向对象和面向过程之间的区别以及优缺点相关推荐

  1. Java面向对象和面向过程有什么区别?网友:傻傻分不清楚……

    面向对象,Obeject Oriented,是一种编程术语.面向对象是当今软件开发方法的主流方法之一,他是把数据以及对数据的操作放在一起,作为一个相互依存的整体,就是我们所说的对象.对同类对象抽象出其 ...

  2. python面向对象和面向过程介绍与区别

    一.面向对象和面向过程的区别: a.面向过程: 1)根据业务逻辑从上到下写代码 2)开发思路是将数据和函数按照执行的逻辑顺序组织在一起 3)分开考虑数据与函数 定义性文字: 面向对象编程(Object ...

  3. 什么是面向对象编程?面向对象和面向过程有什么区别?

    面向对象 面向对象的程序设计(Object-Oriented Programming,简记为OOP),是当下最流行的程序设计方式之一.在面向对象的设计思想中,将程序视为多个对象共同协作的结果.程序被划 ...

  4. 面向对象和面向过程有什么区别

    问:经常听到有人说,计算机语言可以归为面向过程语言和面向对象语言,那么到底什么是面向对象,什么是面向过程呢? 答:面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一 ...

  5. 编程思想:面向对象和面向过程

    何谓面向对象?何谓面向过程?对于这编程界的两大思想,一直贯穿在我们学习和工作当中.我们知道面向过程和面向对象,但要让我们讲出来个所以然,又感觉是不知从何说起,最后可能也只会说出一句就是那样啦,你知道啦 ...

  6. python面向对象和面向过程的区别_Python11-01_面向对象----面向对象和面向过程的区别...

    面向对象编程 面向对象(OPP)编程思想主要针对大型软件设计而来的.面向对象编程使程序的扩展性更加强,可读性更好.使得编程可以像搭积木一样简单. 面向对象编程将数据和操作数据的方法封装到对象中,组织代 ...

  7. python 递归函数_Python尚学堂高淇|P82P86面向对象和面向过程的区别LEGB规则nonlocal_global递归函数阶乘计算案例...

    P82-递归函数-阶乘计算案例 #使用递归函数计算阶乘def factorial(n):if n==1:return 1else:return n*factorial(n-1)result=facto ...

  8. C++ 面向对象与面向过程的区别与联系

    转自:https://blog.csdn.net/jerry11112/article/details/79027834 前言: 如果你很想搞明白面向对象是什么,面向过程是什么,或者说二者之间的区别是 ...

  9. java面向对象与面向过程的区别

    面向对象与面向过程的区别 面向过程与面向对象,只是一种思维方式的划分   面向过程 面向对象 区别 以分步骤的方式解决问题. 用方法组织代码. 以分类的方式解决问题. 用类组织代码. 共同点 细节上用 ...

最新文章

  1. GAN与NLP的讨论
  2. Delphi 中的 XMLDocument 类详解(5) - 获取元素内容
  3. php 图像 处理,PHP 处理图像步骤解析
  4. zookeeper源码分析之四服务端(单机)处理请求流程
  5. 【数据结构总结】第五章 树和二叉树(非线性结构)
  6. 安装deepin linux
  7. mysql 镜像数据_mysql官方镜像数据存储问题
  8. Java|达梦工作笔记-达梦数据库同步工具(JDBC)
  9. verilog实现多周期处理器之——(二)第一条指令ori的实现
  10. hdu 1358 Period (KMP求循环次数)
  11. [C/C++] C++中new的语法规则
  12. 音创服务器系统手动加歌,音创ktv点歌系统的教程
  13. Tensorflow搭建GAN网络
  14. 如何写一篇计算机领域的论文(总结)
  15. linux mbr gpt 区别,MBR、GPT的结构和区别
  16. python:实现使用分而治之找到单峰列表的峰值算法(附完整源码)
  17. java happen-before_Java happen-before规则
  18. cad怎么画坐标系箭头_怎样用CAD画一个路标箭头?,来学习吧
  19. LATEX简介以及相应的环境配置方案(附带刘海洋的LATEX入门书籍链接)
  20. Onlyoffice 添加中文字体,并修改字体大小显示为小四、四号等中文

热门文章

  1. 杨梅派 (Waxberry Pi)手册
  2. springmvc的ServletModelAttributeMethodProcessor解析_晏无心_新浪博客
  3. vue-:visible.sync的作用
  4. iptables开放22、80端口
  5. JMeter之负载阶梯压力测试
  6. STM32使用IIC通信
  7. linux重定向0,Linux重定向命令
  8. python tkinter 窗口禁止编辑_Tkinter Toplevel 禁止主窗口功能
  9. Vue技术—自定义指令
  10. 自贡五月花计算机学校,自贡三维影视设计学校官网网址