原创:C++和Java中OOP机制之差异性分析.docVIP

原创:C++和Java中OOP机制之差异性分析.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
原创:C++和Java中OOP机制之差异性分析.doc

  摘要:C++和Java是目前使用相当广泛的两种面向对象程序设计语言,该文对二者的OOP实现机制之差异性进行分析,从封装性、继承性和多态性三个方面进行探讨,为熟练使用C++和Java进行OOP编程提供帮助。 中国论文网   关键词:封装性;继承性;多态性;差异性   中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)03-0599-02   C++和Java是目前主流的两种面向对象的程序设计语言。C++是编译型,而Java是解释型。C++执行速度快,而Java可移植性好,C++适合底层编程,而Java擅长于WEB系统和嵌入式消费电子设备编程。C++和Java都于基于OOP理论设计出来的,所以它们在基本语法和核心概念上有许多相似之处,然而它们之间在OOP的实现机制上存在不容忽视的差异。本文分析C++和Java在OOP实现机制上的差异。    1 OOP基本概念分析   OOP(Object-Oriented Programming)面向对象编程是目前最主流的程序设计思想,其核心内容由三部分组成:封装性、继承性和多态性。   1.1封装性   封装就是把数据和操作数据的方法结合在一起,形成一个类,外面的类不能随意访问这些数据,通常提供公用方法来访问数据。类和方法是封装性的核心概念。类是一类事物的抽象,包含这类事物的描述和可进行的动作。按照类的模板建立的实例,叫做对象。例如“教师”就可以抽象为一个类,其数据包括教师编号、姓名、性别等,其方法包括备课、讲课、辅导等,具体到某一个教师如“李华老师”,他就是一个对象。   1.2继承性   继承性所表达的是类之间的相互关系,为程序代码的复用提供了良好的支持。继承机制的核心概念是父类和子类,也叫基类和派生类。派生类继承基类的数据和操作,也就是说允许派生类使用基类的数据和操作。同时派生类也可以增加新的数据和操作。例如汽车可以抽象为一个基类,警车类可以作为派生类,它继承了汽车类的有四个车轮及可以移动的特性,还可以增加新的特性,如有警灯、警笛和优先通行等特性。   1.3多态性   多态性指不同的对象收到相同的消息时产生多种不同的行为方式。例如一个司机的车停在了别人的车位上,司机可能会收到别人给他的消息?“请把您的车挪开”,在图书馆里司机的凳子挡住了别人的去路,司机可能会收到别人给他的消息?“请把您的凳子挪开”。在这两种情况下司机收到的都是“挪开”一样东西的消息,但是在听到“挪开”请求以后的行为是截然不同的。这就是多态性,多态性的核心概念是重载和覆盖。    2封装性之差异性分析   C++拥有OOP的特性,同时也继承了C的许多面向过程的特性,如全局变量、结构体和枚举等,所以C++包含了面象过程编程和面向对象编程的双重概念。然而Java却是一种完全面向对象的编程语言,它所有的程序都是由类或者说类的定义组成的。   2.1类的定义之差异   类的组成通常是数据和操作,它们在C++中通常称为成员数据和成员函数,在Java中通常称为属性和方法。在C++中函数可以定义在类中,作为成员函数,也可以不定义在类中,作为独立的函数;数据可以定义在类中,作为成员数据,也可以定义在类外,作为全局变量。在Java所有的方法和属性必须定义在某个类中,禁止在类外对方法和属性进行定义,更符合其完全面向对象的特点。   在C++中不可以在一个类的内部定义另一个类,也就是说不支持类的嵌套定义,而Java支持类的嵌套定义,称之为内部类。   2.2对象的建立与销毁之差异   C++和Java对象建立过程中分配空间的时机不同。假若有一个类Point,语句Point p在C++中的含义是定义一个对象p,同时为 对象p分配存储空间;语句Point p在Java中含义却只是定义一个实例变量p,并没有分配存储空间,只有执行了p=new Point()后才完成了存储空间的分配,生成了对象。   C++中对象的生成和销毁都是通过编程人员编写程序代码来完成的,对象的生成需要编写构造函数,对象的销毁需要编写析构函数,在需要生成对象时自动调用构造函数,在对象销毁时自动调用析构函数,内存空间是由编程人员负责管理的。   Java中对象的生成需要调用构造方法,这和C++中一样。但在Java中为简化编程,对象销毁时的空间回收是由系统的垃圾回收机制自动完成的,Java不支持析构方法,在必要的时候也可以创建一个方法来完成存储空间的回收。   当由已经存在的对象建立一个新对象时,C++使用拷贝构造函数,将参数代表的对象逐域拷贝到新创建的对象中。在Java中没有拷贝构造函数,因为实例变量是按引用传递的。   3.1多重继承与接口   多重继承是指一个子类可以有一个以上的直接父类。C++支持

文档评论(0)

docinpfd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5212202040000002

1亿VIP精品文档

相关文档