`

面向对象概念的提出

阅读更多

  

     面向对象中,一切都是由对象展开的,组织代码,封装数据。

  在台湾面向对象被翻译为了面向物件编程,这充分说明了,这种编程强调实体。

 

    下面就结合编程语言的发展史,聊一聊面向过程和面向对象。

     c语言由贝尔实验室研发,起初编程人员在使用时发现,一个大型的软件会有很多的方法和全局数据。频繁地在方法里调用外面的数据会使得程序的可扩充性下降。没有一个很好的封装,当想要扩充这个软件是非常困难的。

 

   起初、贝尔实验室的科研人员发现了结构体来把很多相似的变量放到一个结构体里面(比如把汽车发动机的属性全部扔到一个发动机的结构体里面)。

后来发现心的弊端又产生了,既然你都已经把所有的属性放到一起了,为什么不把操作这些属性的方法也放到这个所谓的结构体里面呢。

   于是诞生了c++语言把这个结构体叫做了类,使用class关键字来表示。这样就告别了传统的以方法为单位的设计方式,改成以类为单位来组织代码。

 

    面向对象相比于面向过程的优势

  优势只有在设计大软件,完成大任务的时候才能体现出来。

下面有几个很生动形象的例子来表述:

    1、比如描述一个开车的程序。

   使用面向对象:驾驶员、汽车、驾驶员开汽车(驾驶员调用开汽车的方法 )

  使用面向过程:踩离合,挂挡,踩油门,放离合。

  比较一下开车这个过程中,两个方式都差不多,没有体现出面向对象的优势。

是因为开车是一个简单的程序。如果要求设计一辆车,这个庞大的任务,这时、面向对象的优势就体现出来了。你只需要把汽车各个部件以类的形式分解出来,比如轮胎,挡风玻璃,发动机,座椅,逐个去解决。如果你用面向过程,完完全全地生产一辆汽车,这几乎是不可能完成的。

 

 

对象和类

以ood的角度,是先有对象后有类。一个从来没有见过汽车的人,能定义一个汽车类吗?
抽象是抽出相同的部分,一个好的抽象,构建出类很重要。

从oop的角度,先有代码先有类,再有对象。

 

分享到:
评论

相关推荐

    Java中面向对象的概念

    面向对象编程始于20世纪70年代,最初是为了应对结构化编程的一些局限性而提出的。随着计算机技术的发展,面向对象编程逐渐成为主流编程模式之一。它不仅改善了代码的组织结构,还为软件开发提供了一种更接近人类思维...

    UML面向对象设计基础

    作者在回答读者问题时提出,无论读者是面向对象技术的新手还是经验丰富的高手,本书都能提供帮助。对于新手,本书通过介绍面向对象的基本概念帮助快速掌握学习面向对象语言的要点,并增强其跨入该领域的信心。对于有...

    面向对象分析与设计(第3版)

    在处理复杂系统时,Booch 等作者提出了一种系统化的新方法,结合了面向对象分析与设计(OOAD)和UML,来构建系统的架构。这种方法强调了系统架构的重要性,使得整个系统的构建过程更为清晰和有序。此外,书中还对对象...

    LabVIEW面向对象编程技术.pdf

    LabVIEW 面向对象编程技术的提出是为了解决大型 LabVIEW 程序的开发和维护问题。在传统的 LabVIEW 编程中,程序的规模越大,维护和修改的难度也增加。面向对象编程技术的引入使得程序的开发和维护变得更加容易和...

    Java与UML面向对象程序设计.pdf

    第2章介绍了面向对象的基本概念以及UML的一些基本知识。第3章阐述了如何使用Java来编写面向对象程序。第4章介绍面向对象的分析和设计。第5章使用这些面向对象观点分析了图形用户界面(GUI)和Java Swing类库。第6...

    IBM面向对象软件开发和过程

    面向对象软件开发是一种广泛采用的现代编程方法,它基于“对象”的概念,这些对象是现实世界中的实体在软件中的抽象。IBM作为一家全球知名的科技公司,提供了丰富的资源和教程来帮助开发者理解和应用面向对象技术。...

    java面向对象课程设计(有程序和报告)

    Java面向对象课程设计是计算机科学领域中一个重要的实践环节,旨在帮助学生深入理解面向对象编程的概念和技巧。在这个课程设计中,学生通常会被要求完成一个实际的项目,使用Java语言来实现,同时需要提交详细的报告...

    面向对象分析与设计论文

    面向对象技术的兴起源于20世纪60年代的软件危机,为了解决大型软件系统的复杂性、高昂的开发成本和质量问题,软件工程的概念应运而生。面向对象方法通过封装、继承、多态等机制,提高了软件的复用性和可维护性,使得...

    数据结构与算法--面向对象的C++设计

    本章可能是对整个书籍结构和内容进行概述的部分,提出了对象分级的概念,这可能涉及到如何在面向对象设计中分层对象,并且提示读者需要了解C++的一些特性,这些特性对于理解后续内容至关重要。 第2章算法分析: 在...

    数据结构与算法-面向对象的C++设计模式

    - 讨论了访问器、迭代器、存储表示等关键的面向对象概念。 - 涉及到了集合的抽象和搜索容器的设计。 **第6章 栈、队列及双端队列** - 对栈的实现进行了分类讨论,包括数组和链表的不同实现方式。 - 阐述了队列的...

    关于面向对象的名词解释

    面向对象(Object-Oriented, OO)是当前软件开发领域中的一个核心概念,自20世纪90年代以来得到了广泛的应用和发展。它已经成为现代软件工程、系统架构以及多种平台操作系统的核心组成部分。面向对象不仅在计算机...

    面向对象和面向过程的区别

    ### 面向对象与面向过程的区别 #### 一、概念理解 - **面向过程**:这是一种编程思想,强调按照程序执行的过程来组织代码。它更注重于算法和步骤的实现,通过一系列有序的指令来完成任务。面向过程的思想在早期...

Global site tag (gtag.js) - Google Analytics