面向结构和面向对象区别

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

1、面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使 用的时候一个一个依次调用就可以了。 面向对象是把构成问题事务分解成各个对象, 建立对象的目的不是为了完成一个步骤, 而是 为了描叙某个事物在整个解决问题的步骤中的行为。 

2、面向对象以 数据(属性)为导向,将具有相同一个或者多个属性的物体抽象为“类”,将 他们包装起来;而有了这些数据(属性)之后,我们再考虑他们的行为(对这些属性进行什 么样的操作) , 面向过程以 功能(行为)为导向,按模块化的设计,在你在脑袋中也许也有一个类似“类” 的概念,但是表现出来的是属性与行为的分离。

详解:

1.什么是面向对象技术? 

面向对象技术是一种以对象为基础, 以事件或消息来驱动对象执行处理的程序设计技术。 它 具有抽象性、封装性、继承性及多态性。

2.面向对象与面向过程程序设计有什么不同

面向对象与面向过程程序设计有如下不同: (1)面向过程程序设计方法采用函数(或过程)来描述对数据的操作,但又将函数与其操 作的数据分离开来; 面向对象程序设计方法将数据和对数据的操作封装在一起, 作为一个整 体来处理。 函数与数据是否分离 (2)面向过程程序设计方法以功能为中心来设计功能模块,难于维护;而面向对象程序设 计方法以数据为中心来描述系统, 数据相对于功能而言具有较强的稳定性, 因此更易于维护。 以功能为中心;以数据为中心 (3)面向过程程序的控制流程由程序中预定顺序来决定;面向对象程序的控制流程由运行 时各种事件的实际发生来触发,而不再由预定顺序来决定,更符合实际需要。 预定顺序由运行时各种事件的实际发生来触发 (4)面向对象程序设计方法可以利用框架产品(如 MFCMicrosoft Foundation Classes)进 行编程。 面向对象可利用框架 面向对象和面向过程的根本差别,在于封装之后,面向对象 提供了面向过程不具备的各种特性,最主要的,就是继承和多态。

3.面向对象技术有哪些优点

面向对象技术具有程序结构清晰,自动生成程序框架,实现简单,可有效地减少程序的维护工作量,代码重用率高,软件开发效率高等优点。

4.面向对象技术中的封装性有何优缺点?

如何克服这些缺点封装将对象有关的数据和行为封装成整体来处理, 使得对象以外的部分不能随意存取对象的 内部属性,从而有效地避免了外部错误对它的影响,大大减小了查错和排错的难度。另一方 面,当进行修改对象内部时,由于只有少量的外部接口对外提供服务,因此同样减小了内部 的修改对外部的影响。 如果一味地强调封装,对象的任何属性都不允许外部直接存取,则 要增加许多没有其他意义、 只负责读或写的行为。 这会为编程工作增加负担, 增加运行开销, 并且使程序显得臃肿。 为了避免这一点, 在程序的具体实现过程中应使对象有不同程度的可 见性,进而与客观世界的具体情况相符合。

5.为什么要应用继承机制

客观事物既有共性,也有特性。如果只考虑事物的共性,而不考虑事物的特性,就不能反映 出客观世界中事物之间的层次关系。 抽象机制是考虑事物的共性, 继承机制是考虑事物的特 性,这样才能完整地描述客观世界的层次关系。继承能使软件模块具有可重用性、独立性, 缩短软件开发周期,提高软件开发效率,同时使软件易于维护。

6C++对多态性的支持体现在哪些方面

C++的多态性分为编译时多态和运行时多态。 编译时多态是指在程序的编译阶段由编译系统 根据参数确定与哪个同名的函数相联系; 运行时多态是指在程序的运行阶段才根据产生的信 息确定需要调用哪个同名的函数。C++通过函数重载和运算符重载实现编译时多态,通过继 承和虚函数来实现运行时多态。

7. 目前常用的面向对象程序设计语言有何异同

目前常用的面向对象程序设计语言有 C++、 JavaVisual Basic 等。C++是混合型面向对象程序设计语言,继承并改进了 语言,是一种 既支持面向对象又支持面向过程的程序设计方法。 Java 是纯面向对象程序设计语言, C++ 从 发展而来。C++和 Java 均支持面向对象技术的基本概念和基本特征,如封装、类、构造函 数、析构函数、继承、多态等。 C++与 Java 语法描述有相同之处,也有不同之处。如基本 结构语句的语法大致相同, 而类定义的语法等方面则不相同。 此外还有以下不同:(1) C++ 有运算符重载机制,而 Java 没有此特性; (2C++支持多重继承,而 Java 只支持单重继 承; (3C++通过构造函数创建对象,可以直接使用指针来操作对象的成员,而 Java 通 过 new 运算符创建对象,通过 new 运算符返回的对象引用来使用对象,而不是直接操作指 针; (4C++程序要显式地释放所分配的内存,而 Java 具有内存垃圾收集机制,自动管 理内存,不需要显式释放所分配的内存。 Visual Basic 继承了 BASIC 语言所具有的语法简 单、容易学习、容易使用、数据处理能力强的特点,又引入了面向对象、事件驱动的编程机 制和可视化程序设计方法,大大降低了开发 Windows 应用程序的难度,有效地提高了应用 程序开发的效率。但是,Visual Basic 存在语法不严格、开发出的系统第2/3稳定性较低的缺点。 相对 C++来说,Visual Basic 面向系统底层的编程能力有限。

8.什么是.NET? 

.NET 是一种面向网络、 支持各种用户终端的开发平台。 它定义了一种公用语言子集 (Common Language SubsetCLS) ,为符合其规范的语言与类库之间提供无缝集成的混合语言。.NET 统一了编程类库,提供了对下一代网络通信标准——可扩展标记语言(eXtensible Markup LanguageXML)的完全支持,使应用程序的开发变得更容易、更简单。

所以.NET 就是 Microsoft 的 XML Web 服务平台,不论操作系统或编程语言有何差别,XML Web 服务均能 使应用程序在 Internet 上传输和共享数据。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值