原创:c++和java中oop机制之差异性分析

原创:c++和java中oop机制之差异性分析

ID:16164818

大小:30.50 KB

页数:3页

时间:2018-08-08

原创:c++和java中oop机制之差异性分析_第1页
原创:c++和java中oop机制之差异性分析_第2页
原创:c++和java中oop机制之差异性分析_第3页
资源描述:

《原创:c++和java中oop机制之差异性分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、摘要:C++和Java是目前使用相当广泛的两种面向对象程序设计语言,该文对二者的OOP实现机制之差异性进行分析,从封装性、继承性和多态性三个方面进行探讨,为熟练使用C++和Java进行OOP编程提供帮助。中国论文网  关键词:封装性;继承性;多态性;差异性  中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)03-0599-02  C++和Java是目前主流的两种面向对象的程序设计语言。C++是编译型,而Java是解释型。C++执行速度快,而Java可移植性好,C++适合底层编

2、程,而Java擅长于WEB系统和嵌入式消费电子设备编程。C++和Java都于基于OOP理论设计出来的,所以它们在基本语法和核心概念上有许多相似之处,然而它们之间在OOP的实现机制上存在不容忽视的差异。本文分析C++和Java在OOP实现机制上的差异。  1OOP基本概念分析  OOP(Object-OrientedProgramming)面向对象编程是目前最主流的程序设计思想,其核心内容由三部分组成:封装性、继承性和多态性。  1.1封装性  封装就是把数据和操作数据的方法结合在一起,形成一个类,外面的

3、类不能随意访问这些数据,通常提供公用方法来访问数据。类和方法是封装性的核心概念。类是一类事物的抽象,包含这类事物的描述和可进行的动作。按照类的模板建立的实例,叫做对象。例如“教师”就可以抽象为一个类,其数据包括教师编号、姓名、性别等,其方法包括备课、讲课、辅导等,具体到某一个教师如“李华老师”,他就是一个对象。  1.2继承性  继承性所表达的是类之间的相互关系,为程序代码的复用提供了良好的支持。继承机制的核心概念是父类和子类,也叫基类和派生类。派生类继承基类的数据和操作,也就是说允许派生类使用基类的数

4、据和操作。同时派生类也可以增加新的数据和操作。例如汽车可以抽象为一个基类,警车类可以作为派生类,它继承了汽车类的有四个车轮及可以移动的特性,还可以增加新的特性,如有警灯、警笛和优先通行等特性。  1.3多态性  多态性指不同的对象收到相同的消息时产生多种不同的行为方式。例如一个司机的车停在了别人的车位上,司机可能会收到别人给他的消息?“请把您的车挪开”,在图书馆里司机的凳子挡住了别人的去路,司机可能会收到别人给他的消息?“请把您的凳子挪开”。在这两种情况下司机收到的都是“挪开”一样东西的消息,但是在听到

5、“挪开”请求以后的行为是截然不同的。这就是多态性,多态性的核心概念是重载和覆盖。  2封装性之差异性分析  C++拥有OOP的特性,同时也继承了C的许多面向过程的特性,如全局变量、结构体和枚举等,所以C++包含了面象过程编程和面向对象编程的双重概念。然而Java却是一种完全面向对象的编程语言,它所有的程序都是由类或者说类的定义组成的。  2.1类的定义之差异  类的组成通常是数据和操作,它们在C++中通常称为成员数据和成员函数,在Java中通常称为属性和方法。在C++中函数可以定义在类中,作为成员函数,

6、也可以不定义在类中,作为独立的函数;数据可以定义在类中,作为成员数据,也可以定义在类外,作为全局变量。在Java所有的方法和属性必须定义在某个类中,禁止在类外对方法和属性进行定义,更符合其完全面向对象的特点。  在C++中不可以在一个类的内部定义另一个类,也就是说不支持类的嵌套定义,而Java支持类的嵌套定义,称之为内部类。http://www.wandayulec.comwyl  2.2对象的建立与销毁之差异  C++和Java对象建立过程中分配空间的时机不同。假若有一个类Point,语句Pointp

7、在C++中的含义是定义一个对象p,同时为对象p分配存储空间;语句Pointp在Java中含义却只是定义一个实例变量p,并没有分配存储空间,只有执行了p=newPoint()后才完成了存储空间的分配,生成了对象。  C++中对象的生成和销毁都是通过编程人员编写程序代码来完成的,对象的生成需要编写构造函数,对象的销毁需要编写析构函数,在需要生成对象时自动调用构造函数,在对象销毁时自动调用析构函数,内存空间是由编程人员负责管理的。  Java中对象的生成需要调用构造方法,这和C++中一样。但在Java中为简化

8、编程,对象销毁时的空间回收是由系统的垃圾回收机制自动完成的,Java不支持析构方法,在必要的时候也可以创建一个方法来完成存储空间的回收。  当由已经存在的对象建立一个新对象时,C++使用拷贝构造函数,将参数代表的对象逐域拷贝到新创建的对象中。在Java中没有拷贝构造函数,因为实例变量是按引用传递的。  3.1多重继承与接口  多重继承是指一个子类可以有一个以上的直接父类。C++支持多重继承,而Java不支持多重继承,而是使用接口来实现多重继

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。