21.c/c++程序员面试宝典-面向对象的基本知识

原创 2015年11月19日 23:15:03

21.c/c++程序员面试宝典-面向对象的基本知识

面向对象的概念是面向过程概念之后推出的,是高级语言的特征,也是当年开发语言的主流。面向对象注意解决的问题有3个,即软件和代码重要性比较差,软件和代码的可维护性比较差及软件不能满足客户的需求。类是面向对象语言最重要的进化,通过将对象抽象为类,编程者可以将具体问题抽象化,极大的增强了软件模型的描述能力。



面试题96  面向对象与面向过程的区别****


分析:面向对象至今还没有统一的概念。在这里把它定义为:按人们认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世界分析、设计、实现软件的办法。通过面向对象的理念使计算机软件系统能与现实世界中的系统一一对应。


对象是指现实世界中各种各样的实体。它可以是指具体的事物也可以指抽象的事物。例如,整数1、10、300、同学、苹果、飞机、规则、法律、表单等。每个对象都有自己的内部状态和运动规律,如阿梁同学具有名字、外表、身高等内部状态,具有吃饭、睡觉、逛街、打球、散步等运动规律。在面向对象概念中编程者把对象的内部状态称为属性、运动规律成为方法或事件。


面向对象设计是把分析阶段得到的需求转变为符合成本和质量要求的、抽象的系统实现方案的过程、从面向对象分析到面向对象设计,是一个逐渐扩充模型的过程。面向对象中任何对象都可以归属于某类对象,任何对象都是某一类对象的实例。类在面向对象中描述了一组具有相同的特性和行为的对象。c++就是一种面向对象的高级语言。


面向过程是一种以过程为中心的编程思想。面向过程分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,在使用的时候一个一个依次调用。面向过程其实是最为实际的一种思考方式,就算是面向对象的方法也是含有面向过程的思想。可以说面向过程是一种基础的方法。它考虑的是实际的实现。


一般的面向过程是从上往下步步求精。在面向过程中,最重要的是模块化的思想方法。c语言就是一种典型的面向过程语言。


【答案】面向过程是一种以过程为中心的编程思想,以算法进行驱动。面向对象是一种以对象为中心的编程思想,以消息进行驱动。面向过程编程语言的组成为:程序=算法+数据,面向对象编程语言的组成为:程序=对象+消息。



面试题97  面向对象的特征是什么***


分析:面向对象语言的3个要素为封装、继承和多态。


封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口和特定的访问权限来使用类的成员。


继承是指可以使用现有类的所有功能,继承可以使一个对象直接使用另一个对象的属性和方法,并在无需要重新编写原来的类的情况下对这些功能进行扩展。通过继承创建的新类称为“子类”或“派生类”。被继承的类称为“基类”、“父类”或“超类”。继承的过程是从一般到特殊的过程。


多态性是允许将父对象设置成为一个或多个它的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。例如a=b;多态性使得能够利用同一类(基类)类型的指针来引用不同类的对象,以及根据所引用对象的不同,以不同的方式执行相同的操作。


面向对象语言比较面向过程语言有类的概念。类就是把一组具有相同的方法和属性的对象归属为一起。面向对象中,所有对象都可以归属为一个类。


【答案】面向对象的3个要素为:封装、继承和多态。面向对象中所有的对象都可以归属为一个类。


C++基本知识整理(2)

1、构造函数 C++中定义了一种特殊的初始化函数,称为构造函数;当对象被调用时,构造函数自动调用;构造函数名字与类名相同,也没有返回类型和返回值;对象在生成过程中通常需要初始化变量或分配动态...

C++基本知识整理(1)

**在C++编程中using namespace std;这条语句很常见,其中,namespace就是命名空间,而using是声明,std是命名空间名。 命名空间就是为了解决C++中函数变量的命名冲...

Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.2面向对象技术(4.2.6)

4.2.6多态的实现机制是什么多态是面向对象程序设计中代码重用的一个重要机制,它表示当同一个操作作用在不同对象时,会有不同的语义,从而产生不同的结果。(基础知识参见我前面的博客http://blog....

Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.2面向对象技术(4.2.1-4.2.2)

4.2.1面向对象与面向过程有什么区别面向对象是将数据和对数据的操作方法放在一起,作为一个相互依存的整体,即对象。 对同类对象抽象出其共性,即类。类中的大多数数据只能被本类的方法进行处理。类通过一个...

Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.2面向对象技术(4.2.7-4.2.9)

4.2.7重载和覆盖的区别重载(overload)和覆盖(override)是Java多态性的不同表现方式。其中,重载是在一个类中多态性的表现,是指在一个类中定义了多个同名的方法,它们或有不同的参数或...

面向对象的基本知识

  • 2016年11月23日 00:16
  • 3.82MB
  • 下载

JAVA基本知识之面向对象

  • 2014年04月02日 11:44
  • 826KB
  • 下载

程序员面试宝典第10章面向对象+个人理解版整理笔记

因为找实习,很多公司都要看技术博客,大部分笔记,BUG修复之类的都写在印象笔记上,现在开始往上面搬。 1.面向对象编程的好处:@1.良好的可复用性                       ...

PHP中面向对象的基本知识

  • 2014年10月09日 17:24
  • 1.95MB
  • 下载

软件开发面向对象的基本知识

  • 2010年11月10日 19:41
  • 38KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:21.c/c++程序员面试宝典-面向对象的基本知识
举报原因:
原因补充:

(最多只允许输入30个字)