面向对象的主要优点有哪些?

笔试见到的一个题,还真有这么考的。。。

面向对象方法与传统的结构化方法有着显著区别。该思想提倡运用人类的思维方式,从现实世界中存在的事物出发来构造软件系统,它建立在“对象”概念基础上,以对象为中心,以类和继承为构造机制来设计和构造软件系统。

1.与人类习惯的思维方法一致

传统的结构化软件开发方法是面向过程的,以算法为核心,数据和过程作为相互独立的部分,数据和过程分离,忽略了数据和操作之间的内在的联系,问题空间和解空间并不是一致的。

面向对象的方法是以对象为核心,尽可能接近人类习惯的抽象思维方法,并尽量一致地描述问题空间和解空间,从而自然而然地解决问题。

2.系统的稳定性好

面向对象方法用对象模拟问题域中的实体,以对象间的联系刻画实体间联系。当系统的功能需求变化时,不会引起软件结构的整体变化,仅需做一些局部的修改。

由于现实世界中的实体是相对稳定的,因此,以对象为中心构造的软件系统也会比较稳定。

3.可重用性好

面向对象方法具有的继承性和封装性支持软件复用。有两种方法可以重复使用一个对象类。一是创建类的实例,从而直接使用它;二是从它派生出一个满足需要的新类,子类可以重用其父类的数据结构和程序代码,并且可以在父类的基础上方便地修改和扩充,而且子类的修改并不影响父类的使用。

4.较易于开发大型软件产品

用面向对象方法开发大型软件时,把大型软件产品看作是一系列相互独立的小产品,采用RUP(统一开发过程)的迭代开发模型,可以降低开发时的技术难度和开发工作管理的难度。

5.可维护性好

由于面向对象的软件稳定性比较好,容易修改、容易理解、易于测试和调试,因而软件的可维护性就会比较好。

面向对象的主要优点有哪些?相关推荐

  1. python面向对象编程的优点-Python 基础知识----面向对象编程

    一.面向对象编程介绍 面向过程编程: 核心是过程二字,过程指的是解决问题的步骤,即先做什么再干什么然后干什么. 基于该思想编写程序好比在设计一条流水线,是一种机械式的思维方式. 优点:复杂的问题流程化 ...

  2. python面向对象编程的优点-Python面向对象编程

    面向过程编程,重点在于过程(可以理解成how),即以过程为核心,计算机/写代码的人会把精力聚焦在具体的实现过程上,这个过程第一步干什么,第二步干什么,直到最后完成了你的目标. 面向对象编程,重点在于对 ...

  3. python面向对象编程的优点-Python语言有哪些优点?

    2018年主流的十大编程语言中,Python排名第一,被广大使用者誉为"更美好"编程语言.Python语言自身的语言特点,使得他深受开发者的喜爱,那么Python语言到底有哪些优点 ...

  4. python面向对象编程的优点-Python面向对象编程——总结面向对象的优点

    Python面向对象编程--总结面向对象的优点 一.从代码级别看面向对象 1.在没有学习类这个概念时,数据与功能是分离的 def exc1(host,port,db,charset): conn=co ...

  5. python面向对象编程的优点-Python入门之面向对象编程(一)面向对象概念及优点

    概念 谈到面向对象,很多程序员会抛出三个词:封装.继承和多态:或者说抽象.一切都是对象之类的话,然而这会让初学者更加疑惑.下面我想通过一个小例子来说明一下 面向对象一般是和面向过程做对比的,下面是一个 ...

  6. python面向对象编程的优点-Python面向对象编程 一

    一.类 面向对象是对函数进行分类和封装,其主要目的是提高程序的重复实用性,让开发更方便快捷. 在我们的认知中,我们会根据属性相近的东西归为一类.例如:鱼类,鱼类的共同属性是呼吸,卵生.任何一个鱼都在此 ...

  7. 面向对象程序有哪些优点呢?

    转自: 面向对象程序有哪些优点呢? 面向对象简介: 面向对象(Object Oriented)是软件开发方法,一种编程范式.面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统.交互式界 ...

  8. Swift 面向对象

    1.面向对象概念 面向过程编成是将所要解决的问题按解决问题的步骤进行分析. 如果是大问题,就分解成为多个不同的小问题,在程序里叫做划分成不同的模块. 每一个解决的步骤可能是一行或者几行代码,也可能是一 ...

  9. 我问占小狼到底什么是面向对象编程?他转头就走。

    你好,我是 yes. 面向对象编程想必大家都耳熟能详,但是写了这么多代码你对面向对象有清晰的认识吗? 来看看这几个问题: 到底什么是面向对象编程? 和面向过程编程有什么区别? 什么又称为面向对象语言. ...

最新文章

  1. C++ Opencv 读取指定路径中的所有文件(图片)及指定路径中指定格式的所有文件(图片)
  2. erlang supervisor simple_one_for_one实例
  3. Android开发热门前沿知识,成功定级腾讯T3-2
  4. 洛谷 P1044 栈 [卡特兰数]
  5. 伺服电机要计算机控制,计控 - it610.com
  6. 双向控制引脚的控制代码
  7. 找第一个只出现一次的字符_leetcode哈希表之第一个只出现一次的字符
  8. 2010年开年的一地鸡毛
  9. 推荐一个简洁优雅的博客系统,farbox
  10. 风波中的滴滴:离无人驾驶落地还有多远?
  11. unknown error: Chrome failed to start: crashed 解决方法
  12. 怎么在服务器跑sql文件,服务器mysql数据库如何运行脚本
  13. NVIDIA Nsight Compute 界面认识
  14. 【随笔】一个可爱的圆函数模型
  15. 第九届GIS应用技能大赛上午(试题及答案含数据)
  16. 阿拉丁年会 - 小程序开发者年度盛会 报告内容摘要
  17. 计算机怎样禁止再添加新用户,Win10如何添加新用户?
  18. python可视化---阶梯图step()
  19. 跨境电商和淘宝哪个好
  20. gunicorn工作原理

热门文章

  1. ORA-00257: 归档程序错误 Oracle归档报错处理方式
  2. radmin 3.4 绿色版
  3. YOLOv8 深度详解!一文看懂,快速上手
  4. yolov7使用onnx推理(带不带NMS)
  5. DataHub安装配置详细过程
  6. 跟JVM搞对象 -- 深度剖析对象创建和内存分配
  7. NFS And Autofs
  8. 啊哈添柴——小哼买书
  9. oracle复制表包括注释,oracle 快速复制表结构、表数据
  10. CSS设计中盒子模型的应用