?!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
׃软g开?/strong>CQ与Java的区?/span>
CQ最引h的地Ҏ它与Java的区别而不是其怼性。下面主要来介绍CQ区别于Java的不同的q行特点及Java完全没有的特炏V?/span>
中间语言
当MSIL被编译成最l的机器码时Q微软公司在如何选择上是非常灉|的。微软公司很谨慎的对外宣U说MSIL不是解释型的Q而是被编译成机器码。因为开发h员都有这样一个观念:JavaE序天生比CE序q行慢,所以这暗示着ZMSIL的程序优于解释型的Java字节码。当Ӟ既然CQ和其它MSIL产品~译器还未发布,那么q一点就q未证明Q但是Java无处不在的即时编译器使得CQ和Java在效能上是一L。象“CQ是~译型的QJava是解释型的”这栯只是****中的技巧。Java的字节码和MSIL码都是的cM汇编的中间语aQ在q行时执行这些中间码?/span>
与COM的整?/span>
对于ZWindows的CQ开发h员来_最大的收获是对COM的无损整合,COM是微软Win32的组件技术。实际上QQ何一U?Net体系l构上的语言最l都可能dCOM的客L和服务器端程序。用CQ编写的cM会作为COMlg的子c;l果c(resulting classQ也能作为COMlg使用Qƈ作ؓCOMlg的子cR?/span>
微Y公司的目标是使越来越多的语言都能讉KlgQƈ使这些组件能整合?Net体系l构中。已有几个厂商开始着手开发支?Net功能的编E语aQ如COBOL和Haskell。开?/span>
人员能选择不同的语a解决不同问题Q更重要的是Q开发h员不必ؓ采用.Net体系l构而必d习新语言Q可以选择一U他们熟悉的语言?/span>
ȝ
本文的第一、二部分对CQ做了一肤浅的M介绍Q主要是其生动机及与Java的相似性。第三部分则涉|了CQ的语言特点。用范例说明了CQ与Java两者在怼性外Q它们又是非怸同的Q有许多l微的语义和设计区别Q适合不同的技术和市场环境Q又谈到了微软公司对CQ进行标准化斚w的尝试,及其对Java的媄响。cQ与java的区?/span>
1.属性:
java中定义和讉K均要用get和setҎQ可以不成对出现?/span>
cQ中是真正的属性,定义时get和set必须同时出现Q房问时?号即可。不用getQset
2.对象索引是对象数组
public Story this [int index] {
3.CQ中Q不用Q何范围修饰符Ӟ默认的是protectQ因而不能在cd被访?
4.因ؓJAVA规定Q在一个文件中只能有一个publicc,而且q个cȝ名称必须与文件名一模一Pq是一个区?/span>
5.在CQ中Q它是以MainҎ来定位入口的.如果一个程序中没有一个名为Main的方法,׃?quot;找不到入口的错误".不要把Main写成main?/span>
6.CQ预定义的简单数据类型比Java多。例如,CQ有unitQ即无符h?/span>
7.忘掉Java中的static final修饰W。在CQ中Q常量可以用const关键词声?/span>
CQ的设计者还增加了readonly关键词,readonly域只能通过初始化器或类的构造函数设|?/span>
8.公用cȝ入口?cQ是可以对Mainq行重蝲Qjava中是mainQ,允许有intq回值和I参数的Main
9.在Java中,switch语句只能处理整数。但CQ中的switch语句不同Q它q能够处理字W变量。请考虑下面用switch语句处理字符串变量的CQ代?/span>
10.CQ没?gt;>>UM操作W?/span>
11.goto关键?
Java不用goto关键词。在CQ中Qgoto允许你{到指定的标签。不q,CQ以特别谨慎的态度对待gotoQ比如它不允许goto转入到语句块的内部。在Java中,你可以用带标{语句加上break或continue取代CQ中的goto?/span>
12.int[] x = { 0Q?1Q?2Q?3 };
int x[] = { 0Q?1Q?2Q?3 };
但在CQ中Q只有第一行代码合法,[]不能攑ֈ变量名字之后?/span>