一、面向对象

面向对象技术是目前流行的系统设计开发技术,它包括面向对象分析和面向对象程序设计。面向对象程序设计技术的提出,主要是为了解决传统程序设计方法——结构化程序设计所不能解决的代码重用问题。

面向对象的编程方法具有四个基本特征:

1.抽象:

  抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。比如,我们要设计一个学生成绩管理系统,考察学生这个对象时,我们只关心他的班级、学号、成绩等,而不用去关心他的身高、体重这些信息。抽象包括两个方面,一是过程抽象,二是数据抽象。过程抽象是指任何一个明确定义功能的操作都可被使用者看作单个的实体看待,尽管这个操作实际上可能由一系列更低级的操作来完成。数据抽象定义了数据类型和施加于该类型对象上的操作,并限定了对象的值只能通过使用这些操作修改和观察。

2.继承:  继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。这也体现了大自然中一般与特殊的关系。继承性很好的解决了软件的可重用性问题。比如说,所有的Windows应用程序都有一个窗口,它们可以看作都是从一个窗口类派生出来的。但是有的应用程序用于文字处理,有的应用程序用于绘图,这是由于派生出了不同的子类,各个子类添加了不同的特性。

3.封装:

  封装是面向对象的特征之一,是对象和类概念的主要特性。封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。一旦定义了一个对象的特性,则有必要决定这些特性的可见性,即哪些特性对外部世界是可见的,哪些特性用于表示内部状态。在这个阶段定义对象的接口。通常,应禁止直接访问一个对象的实际表示,而应通过操作接口访问对象,这称为信息隐藏。事实上,信息隐藏是用户对封装性的认识,封装则为信息隐藏提供支持。封装保证了模块具有较好的独立性,使得程序维护修改较为容易。对应用程序的修改仅限于类的内部,因而可以将应用程序修改带来的影响减少到最低限度。

4. 多态性:

  多态性是指允许不同类的对象对同一消息作出响应。比如同样的加法,把两个时间加在一起和把两个整数加在一起肯定完全不同。又比如,同样的选择编辑-粘贴操作,在字处理程序和绘图程序中有不同的效果。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。

面向对象程序设计具有许多优点:

1、开发时间短,效率高,可靠性高,所开发的程序更强壮。由于面向对象编程的可重用性,可以在应用程序中大量采用成熟的类库,从而缩短了开发时间。

2、应用程序更易于维护、更新和升级。继承和封装使得应用程序的修改带来的影响更加局部化。

二、面向过程

面向过程编程:“面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。这些都是以什么正在发生为 目标进行编程,不同于面向对象的是谁在受影响。与面向对象明显的不同就是封装、继承、类。

面向过程编程最易被初学者接受,其往往用一长段代码来实现指定功能,开发过程的思路是将数据与函数按照执行的逻辑顺序组织在一起,数据与函数分开考虑。

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

面向对象与面向过程编程的区别相关推荐

  1. 面向对象编程 面向过程编程_面向对象的编程真的是死定了

    面向对象编程 面向过程编程 重点(Top highlight) Programming in the 1960s had a big problem: computers weren't that p ...

  2. 面向对象编程和面向过程编程的区别,以及优缺点

    面向对象编程 当需要实现一个功能的时候我们并不关心具体的步骤,而是找一个已经具备该功能的人来帮我们做事.那就用到了封装.继承和多态. 封装 - 把需要的功能放到一个方法中,别人只能调用这个方法 继承 ...

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

    面向对象的编程是以对象为中心,以消息为驱动. 面向对象是一种基于面向过程的编程思想,是计算机向现实世界模型的自然延伸,说白了就是"万物皆对象". 在现实世界中任何一种物体都可以归为 ...

  4. Systemverilog:面向对象编程与面向过程编程区别

    在学习验证的同学中开始学习大家都很对"对象"这个概念一脸懵,尤其是这个概念在后续的学习中非常的重要.不理解的话,就是很难理解面向对象编程这个对象到底是什么?和面向过程的C语言到底有 ...

  5. opp原则_面向过程编程(OPP) 和面向对象编程(OOP)的关系

    面向过程编程(OPP) 和面向对象编程(OOP)的关系 原文链接:http://blog.csdn.net/phphot/article/details/3985480 关于面向过程的编程(OPP)和 ...

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

    面向对象编程和面向过程编程(函数式编程)都是程序设计的方法,不过稍有区别. 套路 面向过程编程 1. 导入各种外部库2. 设计各种全局变量3. 写一个函数完成某个功能 4. 写一个函数完成某个功能 5 ...

  7. 问题小结(二)——maven的核心功能、面向对象编程和面向接口编程的区别、抽象类和接口的区别等

    文章目录 1. Java创建对象有哪四种方式? 2. 什么是maven?maven的核心功能有哪些? 3. 什么是MVC?说说分层的好处. 4. Spring的两大核心技术是什么? 5. 什么是IOC ...

  8. java面向过程编程怎么写_从面向过程到面向对象,我的编程之路

    也许现在新一代的程序员一开始涉足的就是c++,C#,Java这类面向对象的语言,如果这样,这篇文章可能得不到他们的认同. 这里,我只想写写我从面向过程到面向对象开发成长中的一些感想而已. 我最初学习的 ...

  9. 什么是面向接口编程、面向过程编程、面向对象编程?

    1.什么是面向接口编程?(IOP) 面向接口编程(Interface Oriented Programming:IOP)是一种编程思想,接口作为实体抽象出来的一种表现形式,用于抽离内部实现进行外部沟通 ...

最新文章

  1. BUUCTF(pwn) jarvisoj_level4 栈溢出,泄露libc
  2. 【Linux】Linux crontab 命令详解
  3. android分辨率hdpi,Android资源 - 哪些分辨率应该进入hdpi,ldpi,mdpi和xhdpi目录
  4. Android BLE学习(三):编写自己的 BLE蓝牙读写工具(功能仿照nrf master control panel)
  5. CKEditor的使用,并实现图片上传
  6. cmd中无法连接MySQL
  7. [转载] dataframe按列/行遍历数据
  8. python绘制中国省界地图,python画中国地图(含省界、河流等)
  9. 华硕电脑光驱位换成固态硬盘
  10. 10家不错的iphone编程资源站
  11. 一文梳理等保2.0与工业控制系统安全扩展要求
  12. UMLChina建模竞赛第3赛季第7轮:假烟假酒假朋友,假情假意假温柔
  13. 全球约有 150 亿台设备在运行 Java,收费后还能用吗?
  14. 古龙108将,喜欢古龙的来看啦
  15. Echarts( Pie,Bar)数据可视化 条形图,柱图,饼图、时间轴代码 JS-NEW
  16. 企业微信推送消息延迟_微信接收消息总是延迟?没有提醒,这3个功能赶紧设置一下...
  17. 央视新闻同款 教你1分钟做出三维地球动画特效
  18. dpdk-20.11 编译和安装
  19. 关于py2neo中的merge,create,当反复执行时,会出现什么。。。
  20. 用ArcMap打开MXD文件报One or more layers failed to draw错误!

热门文章

  1. sap 查询数据 未分离版本
  2. 计算机开机按f1f2,按f1-电脑开机后要按F1或F2才能进入系统,是怎么回事? 爱问知识人...
  3. matlab转化成c语言,matlab转化成c语言的有关问题不会了
  4. PO与VO之间的相互转换
  5. 电商平台满减活动需求分析
  6. springboot 多任务并行执行
  7. Mysql数据库操作语句总结(一)
  8. 王选:从Dijkstra谈帅才的洞察力
  9. Android MediaPlayer+SurfaceView播放视频 (异常处理)
  10. 学习笔记——IPSec