面向对象程序计的平台——C++与JAVA的比较

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:wjw842008
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:通过理论有与实例的比较,对目前比较流行的两种面向对象的编程语言C 与Java从7个方面作一比较,希望为程序的设计与教学提供帮助与选择。
  关键词:C ;JAVA;程序设计;编程语言
  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2008)21-30453-02
  
  Comparison of the Object-oriented Procedure Counts Platform C and JAVA
  GAO Jian-zhou
  (Haifeng Subsidiary company of Chinese Telecommunication Limited Liability Company,Shanwei 516400,China)
  Abstract: This article made a comparison of two of the popular object-oriented programming language-C and Java from 7 aspects compares with the theory and experience.And we hoped that it can provide the help and choice for the procedure design and the teaching.
  Key words: C ; JAVA; Programming; Programming language
  
  计算机语言,自20世纪80年代到90年代中期,一直以C、PASCAL、FORTRAN 为主,其中以C语言最为流行,在面向对象编程的思想被广泛接受和实现后,C 和Java逐渐成为计算机语言的主宰。C 语言在兼容原有最流行的C语言的基础上,加入了面向对象的有关内容和规则。由于它的很多语法规则与c语言相近,所以很容易为广大的C程序员所接受;同时C 所具有的面向对象功能简化了应用软件的开发、设计和维护,为开发大型软件提供了很大的方便。但是,由于本身是面向过程语言的补充,C 也有很大的不足。Java是在C 之后出现的,从语法特征上看,Java主要源自于C ,但在许多方面进行了改革,使得熟悉C 的程序员能很方便地进行编程。同时为了实现其简洁、健壮、安全等特点,也摒弃了C 中许多不合理的内容。本文将从多个方面将Java与c 加以比较,希望为程序的设计与教学提供帮助与选择。
  
  1 一般特点比较
  
  C语言设计灵活,功能强大,但不支持面向对象程序设计,为了让编程人员在使用面向对象的概念时保持对C 语言的向后兼容性,Bjarne stroustrop在C语言上引进了“类” 的概念,称作C 语言,C 既兼容以前C语言的过程程序设计,又支持面向对象的程序设计,其主要特点是:允许单继承和多继承,支持数据封装;允许函数名和运算符重载,支持动态联编。Java由Sun公司开发,是一种纯面向对象语言,运行在网络浏览器上,Netscape和IE浏览器都迅速地把这种技术整合其中,Java传播得极快。其主要特点是在JVM上运行,语言简单,多线程,分布式,解释执行,可在不同的操作系统层面移植,能够在大型机上运行。
  
  2 数据转换
  
  在C 语言中,支持数据类型的自动转换,自动数据类型转换使得两个数据类型互不兼容的变量可以相互赋值,不需给出显式说明,这有时会导致一些问题,最常见的是精度损失。例如,如果把一个带符号的32位整数赋给一个无符号整数,则所有的结果均为正数,不安全因素大大增加。C 语言可以通过指针进行任意的类型转换,而Java语言不支持这种自动类型转换方式,要求编程人员显式实现数据类型转换,系统要对对象的处理进行严格的相容性检查,防止不安全的转换。在C 语言中,不同的平台上,编译器对简单的数据类型如int、float等分别分配不同的字节数。例如:int在IBMPC上为l6位,在VAX-11上就有32位,导致了代码数据的不可移植。在Java中,对数据类型的位数分配总是固定的,而不管是在任何的计算机平台上,因此就保证了Java数据的平台无关性和可移植性。
  
  3 数组
  
  尽管C 数组与Java数组表面上类似,但与C 相比,数组在Java中用类来实现,而且对于下标进行检查,每个Java数组都有一个只读的成员,通过它可知道数组有多大。而且一旦超过数组边界,运行期检查会自动丢弃一个异常。Java这种对于数组下标进行检查的机制,很好地解决了数组越界这一C 中不作检查的错误,确保Java程序不能破坏不属于它的内存空间。所有的动态内存申请将都通过new运算符来完成,包括数组内存空间的申请。所有数组都是在内存“堆”里创建的,我们可将一个数组分配给另一个。数组标识符属于第一级对象,它的所有方法通常都适用于其他所有对象。和C 完全不同的是,Java数组类型定义不同时产生数组所需要的内存空间 而必须通过new算符指定数组的维长并分配内存后,才可以使用数组元素。而且,在Java中得到的不是指针,而是引用。程序只能通过引用来访问数组元素或者对象 不能像指针那样通过修改引用的值来指向另外一块内存区域,减少了出错的机会,也可以使内存动态地由系统进行回收。
  
  4 参数传递
  
  C 中的参数传递
  #include<iostreara.h>
  typedef int*pInt;
  void change1(int x)(x=1;)
  void change2(int’x)(* x=1;)
  void chaege3(plnt x)(* x=1;)
  void change4(int &x) (x=1;)
  main(){
  int i;j;k;l; pInt pk; i=j=k=l=();pk=
其他文献
2018年2月6日,四川省文联七届三次全委会在成都新华宾馆武担楼三楼雪域厅成功召开。四川省文联主席郑晓幸,四川省文联党组书记、常务副主席平志英,四川省文联党组副书记、副主席兼秘书长李兵,四川省文联党组副书记刘建刚,以及省文联主席团成员,全委会委员代表140余人出席会议,省委宣传部文艺处有关同志列席大会。  上午,四川省文联主席郑晓幸主持会议。会议第一议程传达中国文联党组书记、副主席、书记处书记李屹
摘要:网络化视频监视是远程视频监控、远程视频会议等应用的基础,采用Microsoft提供的VFW技术,获取摄像头视频信号,通过C/S模式通信编程,实现网络化视频监视功能。该程序可以使用于集中视频监视、远程视频会话等场合,具有应用范围广、通用性强、编程相对简单、成本低、可靠性高等优势。  关键词:网络化;视频;监视  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)09-
摘要:汉语国际教育专业人才培养的主要目标是培养国际汉语教学合格师资,专业教学实习是人才培养的重要环节。通过专业教学实习,尤其是境外教学实习,让学生实现理论基础知识 实践能力培养、第二语言应用能力、国际意识和跨文化交际能力、涉外项目的设计、组织、实施等多种能力的培养。  关键词:汉语国际教育 境外教学实习(IAP) 国际汉语教师培养  一、汉语国际教育专业教学实习的重要性  汉语国际教育专业人才培养
我国汉语言文学源远流长,博大精深,其中潜藏着无限的奥秘,值得我们不断探索。汉语言文学作为大学阶段的教育内容,有利于提高大学生的文化素养、认知水平以及审美能力。在职业教育中开设汉语言文学知识课同样有着重要的价值和意义,尤其是与历史文化密切相关的旅游行业的教育培训,提升从业人员的专业素养和文化底蕴既是行业的基本要求,也是新时代下市场的内在需求。由韩荔华编写的《汉语言文学知识》一书正是一本适合导游专业人
儿童诗是指结合儿童生长发育特点和心理特点,为提高儿童阅读欣赏能力,专门为儿童创作的诗歌。儿童诗展现了儿童丰富的内心世界,把儿童独有的内心世界和情绪活动生动地传达出来,情趣盎然,是一种陶冶儿童情操、发散儿童思维、发展儿童语言的非常好的素材。统编教材低年级段中有很多儿童诗,诗中有优美的语言、丰富的想象、新奇的构思,从中儿童可以获得美的体验与快乐。  《义务教育语文课程标准(2011年版)》(以下简称“
[摘要]诗歌是中国传统文化中重要的一部分,在曹雪芹先生的代表作品《红楼梦》中,诗歌也有所体现。由于《红楼梦》在文学史上的重要地位,很多人都对其进行了英译,在这些英译本中,杨宪益夫妇以及大卫·霍克斯的译本较为突出。本文就这两个译本从信息功能,美学功能,文化传递功能等方面进行对比分析,以期通过对译本的研究进一步促进中国文化走向世界。  [关键词]《红楼梦》;诗歌翻译;信息功能;美学功能;文化传递功能 
摘要:随着计算机网络的普及,网络教学愈来愈受到教育者的重视。该文主要讨论计算机导论课程的网络教学平台的设计,详细分析该系统的系统结构和功能,论述系统中主要功能模块的实现。  关键词:网络教学;B/S模式;学习系统;练习与测试;演示动画  中图分类号:TP315文献标识码:A文章编号:1009-3044(2008)33-1433-02  Design and Realization of Netwo
摘要:在Intel未来教育的先进理念的指引下,从基于局域网的网络课件的特征与内涵出发,以建构主义与“双主模式”教学理论为指导,利用局域网与互联网的优势,介绍设计开发新型网络课件的方法,并结合实际教学过程中的具体例子,提出相应的解决策略。  关键词:Intel未来教育;双主模式;网络课件   中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)32-1267-02  Netw
摘要:本文在对Java多线程分析的基础上,针对如何实现多线程,如何进行同步,如何管理多线程等问题进行了简单的阐述。  关键词:线程;多线程;线程组  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)19-30181-03  Analyse Shallowly Java Multi-threading Mechanism  WANG Jun-yu, WANG Xian-h
摘要:无线传感器网络是由部署在监测区域内大量的廉价微型传感器结点组成,具有传感器节点密度高,网络拓扑变化频繁,以及节点的功率、计算能力和数据存储能力有限等特点。该文介绍了ZigBee网络与GSM/GPRS网络相结合实现远程监测的无线传感器网络的软件与硬件总体设计方法。  关键词:传感器网络;数据融合;网络协调器  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)33-1