设为首页 加入收藏

TOP

OOP语言技术比较:Java,C++,Object Pascal(五)
2014-11-24 01:15:22 来源: 作者: 【 】 浏览:27
Tags:OOP 语言 技术 比较 Java Object Pascal
emplate关键字表示。C++标准包含了一个巨大的模板类库,称为STL,用于支持一些特殊而有用的程序设计功能。


·OP:Object Pascal不支持模板。容器类通常被创建为TObject类对象的容器。


·Java:Java同样不支持模板。你可以使用对象容器,或采用其它类似的方法。


其它特殊特性
·特性描述:以下是其它一些我谈及的特性,它们不是基础特性,而且仅为一种语言所特有。


·C++:我已经提到了多重继承、虚基类和模板。还有一些另外两种语言所不具有的特性。C++支持操作符重载,而Java中支持方法重载。C++还允许程序员重载全局函数。你甚至可以重载类运算符,编写可能会在后台被调用的类型转换方法。C++的对象模型需要拷贝构造函数和赋值运算符重载,而其它两种语言则不需要,因为它们基于对象引用模型。


·Java:只有Java在语言中支持多线程。对象和方法支持同步机制(使用synchronized关键字):同一个类的两个synchronized方法不能同时运行。要创建一个新的线程只需从Thread类中派生新类,并覆盖run()方法。另一个方法是实现Runnable接口(这是建立多线程applet的常用方法)。我们已经讨论过了碎片回收程序。Java的另一个关键特性是代码兼容性,但是这并不是严格的与语言相关的。


·OP:Object Pascal的一些特性包括类引用,便利的方法指针(这是事件模型的基础),特别是属性。属性用来隐藏对数据成员的访问,这些访问大多是通过方法进行的。属性可以直接映射为对数据成员的读写操作,也可以映射为访问函数。即使改变了访问数据成员的方式,也不需要改变调用的代码(虽然需要重新编译),这使得属性称为了一个强大的封装特性。Java也将在1.1版中加入这个特性,以支持Java Beans。


标准
·特性描述:每个语言都需要有人建立一个标准,并检查是否所有的实现都符合这个标准。


·C++:ANSI/ISO C++标准委员会已经完成了标准化工作。大多数编译器编写者都努力遵守这个标准,虽然还有很多的差异存在。理论上的发展已基本停止。但在实现上,新的Borland C++ Builder虽然并不很成熟,但使很多人认识到C++迫切的需要一个可视开发环境。同时,广为流行的Visual C++将C++向另一个方向发展起来,例如,大量使用宏。我的意见是,每个语言都有它的开发模型,在不适于某种语言的环境下强行使用这种语言是毫无意义的。


·OP:Object Pascal是一个私有语言,所以没有标准。Borland已经授权给一些OS/2编译器开发商,但是没有什么效果。在每一个新版本的Delphi中,Borland都扩展了这种语言。


·Java:Java也是私有语言,并且拥有一个同名的商标。但是Sun更愿意授权给其它编译器开发商。Sun自己控制着这种语言,并且好像并不想为其建立一个官方的标准,至少目前如此。Sun也在极力避免不遵守标准的虚拟机被开发出来。


首页 上一页 2 3 4 5 下一页 尾页 5/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇DisigenPattern设计模式 下一篇面试经历(20):千橡互动猫扑

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: