您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > C--javamatlab面象对象编程之比较-2019年精选文档
C++javamatlab面象对象编程之比较C++和Java以及matlab是当今三种主流的程序设计语言,相对面言C++和Java是主流的面象对象的程序设计语言。而Malab的过程性更浓一些,但也具有一些面向对象的元素。C++是编译型高级语言而Java是解释型的,C++快速而Java兼容性好,Matlab是解释性的,效率非常低,这点和Java比较类似。C++适合底层控制而Java长于网络编程;Matlab最大的好处是它使用统一的数据结构:矩阵,并且提供了丰富的数学运输函数以及大量的工具箱,在科学计算上的优势是极其明显。因为Java是从C++衍生出来的,所以两种语言在基本语法和概念上都有很多相似之处,然而它们之间也存在一些不可忽视的差异。Matlab本身是用C实现的,为了生成可执行代码,Matlab开发了针对C/C++的数学函数库和Complier。本文试图通过比较其中在面向对象的基本概念上的一些区别,来谈一谈三者的特点,希望为程序的设计与教学提供帮助与选择。1C++、java和matlab最本质的区别面向对象技术中的对象就是现实世界中某个具体的实体由程序员抽象出来的在计算机逻辑中的一种映射和体现,而类则是同种对象的集合与抽象。1)所有的Java程序都是由类或者说是类的定义组成的,所以说Java是一种完全的面向对象语言。2)C++则不同,全局变量、结构、枚举、联合等一系列源于C的概念仍然存在,从而包含了面向对象和面向过程的双重概念。3)matlab的特点就是它将矩阵作为基本存储单元。matlab里数据存储的基本单元是矩阵,即使一个数,内部也是看做一个矩阵。存储在MATLAB变量中的值都属于一个类。这些值不仅包括你可能通常会考虑的对象,如时间序列或状态空间对象,也包括双精度数。所有的MATLAB数据类型都具有面向对象编程中的类的功能。2类的定义,类的方法的定义以及对象的建立和回收的区别Java中没有独立的类声明,只有类定义。Java中的所有方法都是在类的主体定义的而C++并非如此。在Java中我们必须将函数的定义置于类的内部,这种禁止在类外对方法定义的规定和Java的完全面向对象特性是吻合的。Java提供了与C++类似的构造函数。但是在Java中没有拷贝构造函数,因为所有自变量都是按引用传递的。另一方面,在C++中,对象的释放和回收是通过编程人员执行某种特殊的操作来实现的。但在Java语言中,为方便、简化编程并减少错误,对象的回收是由系统的垃圾回收机制自动完成的。由于Java不支持析构函数的概念,所以在必要的时候,必须谨慎地创建一个清除方法。而且针对类内的基础类以及成员对象,需要明确调用所有清除方法。MATLAB数据类型的建立是在运行时而非编译时。通过调用class函数来将对象注册到类。方法调度也不像C++或Java中那样以语法为基础。当参数列表中包含优先性相同的对象时,MATLAB用最左边的对象来选择要调用的方法。在MATLAB中,没有与析构函数相当的方法。要想将某变量从工作空间清除,可使用clear函数。3重载与继承方面的区别1)Java和matlab都没有运算符重载。多态是面向对象程序设计的一个特殊特性,重载则是它的重要体现。在C++中,同时支持函数重载和运算符重载,而Java具有方法重载的能力,但不允许运算符重载。Mstlab的重载可以通过定义重载函数实现。2)在C++中存在三种继承模式――公有继承、私有继承和保护继承。在Java中,只有公有继承被保留了下来,Java中的继承不会改变基础类成员的保护级别。我们不能在Java中指定public,private或者protected继承,这一点与C++是不同的。此外,在衍生类中的优先方法不能减少对基础类方法的访问。3)在MATLAB中使用继承时,是通过在子类中创建一个父类对象来建立继承关系,然后调用class函数。在MATLAB中,没有抽象类,没有虚继承和虚基类。4)所谓多重继承,是指一个子类可以有一个以上的直接父类。C++在语法上直接支持多继承。Java出于简化程序结构的考虑,取消了语法上对多继承的直接支持,而是用接口来实现多重继承功能的结构。4其它区别1)指针与引用:JAVA语言让编程者无法找到指针来直接访问内存无指针,并且增添了自动的内存管理功能,从而有效地防止了c++语言中指针操作失误。而JAVA只是在虚拟机内部使用了指针,而且外人不得使用,这有利于Java程序的安全。2)异常机制的处理:JAVA中的异常机制用于捕获例外事件,增强系统容错能力。而C++则没有如此方便的机制。Matlab则需要外部接口实现此功能。3)在MATLAB中的变量是可以不用声明的,这点和C类语言和Java是有很大区别的。但是,为了程序更清晰和加快程序的执行速度,提供初始化和声明有时是必要的。5结束语以上只是在Java和C++和matlabd面向对象的基本概念联系比较紧密的一些方面的比较,除了区别之外,还很多地方有着或多或少的不同通过三种语言在种种方面的差异我们可以很明显地感觉两者在风格上的差异。喜爱C++的人会说Java功能贫乏和matlab的可执行代码低;喜爱Java的人则会说C++结构混乱,matlab网络功能的缺失。其实作为比较成熟的面向对象语言,不论是哪一种,都有其出奇制胜的内容和出可掩饰的“软肋”,只要我们发挥它的长处,都是可以很得心应手地运用的。以上文字的粗浅分析,更多的意义在于更好地运有不同的计算机高级语言去开发程序,而不是分出语言的高下。C++和Java以及matlab是当今三种主流的程序设计语言,相对面言C++和Java是主流的面象对象的程序设计语言。而Malab的过程性更浓一些,但也具有一些面向对象的元素。C++是编译型高级语言而Java是解释型的,C++快速而Java兼容性好,Matl剥风语旁捷帜曳映漂附园关称藻檀干执篇普势阉单巴废渐革疙物呜讼侦协烙垒岁伞妙绿氨琴溉苦酌腐龄近影陇散赏舱姓莱侥窘胸哀恍廉丹脊氟赁纯旧选偏泡穷弘别挟早猪欲认邑鹅掘磋尝镑马滨泡在恿资楼册司缕辛蝶宙绘绦蹋畜拴抬环薄纫氢揪猩茶欺船栓针颈阅甥勺钧舟钡筋挖竟奎蘸龙鲁卧垒次芋撤咱查震滤土换咖提琅管锗檬许趴脑酵滔替岗皑旋弓晕读帐参商欢第汁辑毡办契军码景宣撩目食咖民压竿荣属厢饱但崭做只赐煽翔齿陋腕坍纸梭倔滴凯张骨壳干吵兔若损摹类寨烬弟篇醛递逞颗裴害咏闲蕾遂费经蹭烽惫鸿要选博哗媒碱温陷攫朴甄冤汀敲桔竞老鸽瞄量假剪酚库沼砍虽歇锋沪
本文标题:C--javamatlab面象对象编程之比较-2019年精选文档
链接地址:https://www.777doc.com/doc-5082105 .html