网站大量收购独家精品文档,联系QQ:2885784924

浅析JAVA与C++的区别.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  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文档。上传文档
查看更多
浅析JAVA与C++的区别   摘要:c++支持类的多继承,java采用类的单继承;C++中引入构造函数的同时也引入了析构函数,而java却没有析构函数,它自动进行无用内存回收操作,不需要程序员进行删除,而c十十中必须由程序释放内存资源。本文将从一些常见的技术角度入手,对这两种程序设计语言进行阐述。      关键词:继承;多继承;构造函数;OOP;类封装;   中图分类号:O244 文献标识码:A文章编号:1007-9599 (2010) 01-0000-02      一、概述   OOP关键特性   面向对象程序设计(OOP)并不是一种新的程序设计技术。它最早可以上溯到Simula-67,虽然它的第一个真正完整的实现是Simula-80。如今OOP已经非常流行,并且出现了许多支持OOP的语言,比如C++,Objective-C(另一种C语言扩展),CLOS,Eiffel,Ada以及最近的Java。   OOP的关键特性如下:   #8226;类,在类中封装了表现和操作的抽象数据类型。在OOP语言中,类是模块、封装和数据抽象的基础。   #8226;继承,从已存在的类型中继承元素,改变或扩展旧类型的方法。   #8226;多态性,它允许使用类似的方法操作不同类型的对象。它使得类的可用性进一步提高,程序也因此更容易维护和扩展。      二、区别   (一)数据类型   无论是哪一种语言,数据类型都是比较重要的,而在Java和c++中也是如此。C++有许多种基本类型,还有struct,union,enum,数组和指针,C++指针可以指向对象,也可以不指向对象,在java程序中的变量只有两种,一种是基本数据类型(boolean,char,byte,short,int,long,float,double),另一种是对对象的引用,没有枚举、联合类型,将可有可无的语言元素去掉是Java对C/C++做出的一大改变,因此,普遍认为Java较C++更轻便,更精简。   Java采用Unicode字符集,C++通常用ASCII字符集。Java中的boolean类型不能转换成其他类型,反之亦然。C++最近引进了bool类型,代表布尔类型,整型也可作为逻辑判断,Java中包括了一个字符串的对象,并且是个常量。字符串不像字符数组一样,虽然可以简单的从一个字符数组构造一个字符串。   (二)构造函数   在C++以及Java中,构造函数和类具有相同的名字。如果没有定义构造函数,编译器会自动为类添加一个默认构造函数。在这两种语言中,类可以具有多个构造函数,这就是所谓的“方法重载”。   在Java中,虽然构造函数也被称为初始化函数,但与C++的构造函数在使用上没有什么区别。需要注意的是,Java虚拟机负责创建对象,而构造函数只对创建的对象进行初始化。   C++的析构函数在对象超出作用域时,或者删除动态创建对象时自动被调用。每个类只能由一个析构函数。而Java没有析构函数,没有引用的对象将被碎片回收程序在后台销毁。在销毁对象之前,碎片回收程序调用finalize()方法。但是,并没有什么保证这个函数真正被调用。因此,如果需要释放资源,就要定义一个方法,并保证它被调用。   (三)类封装   这两种语言提供了相同的三种访问限定符来提供不同级别的类封装:public,protected和private。public意味着对于任何类都是可见的,protected意味着对于派生类可见,private意味着没有外部可见性。但是两种语言的实现细节并不相同。   在C++中,可以使用friend关键字跳出类封装。由class关键字声明的类默认可见性是private,由struct关键字声明的类默认可见性是public;在Java中,一个语法上的区别是每一个类成员都要用访问限定符声明,另一个实质上的区别是Java中类成员默认访问限定符是friendly,因此对同一个包中的所有类都是可见的。同样,protected关键字表示类成员对派生类可见,同时也对同一个包中的其它类可见,而private protected才对应于C++中的protected。   (四)自动内存管理   Java程序中所有的对象都是用new操作符建立在内存堆栈上,这个操作符类似于c++的new操作符。下面的语句由一个建立了一个类Read的对象,然后调用该对象的work方法:   Read r=new Read();   r.work();   语句Readr=newRead();在堆栈结构上建立了一个Read的实例。Java自动进行无用内存回收操作,不需要程序员进行删除。而c十十中必须由程序释放内存资源,增加了程序设计者的负担。Java中

文档评论(0)

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

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

版权声明书
用户编号:8073070133000003

1亿VIP精品文档

相关文档