快乐每一天。。。

JAVA与C#语法区别

上一篇 / 下一篇  2013-03-16 21:45:42

JAVA语法和C#语法类似,除了一些关键字上有些区别,两者几乎是相通的。只是一个是sun公司,一个是microsoft。主要区别如下:

1,运行环境:C#需要.net framework支持,C#必须要在.NET FrameWork下运行,一般基于windows平台,需要IIS。而java有虚拟机,可以跨windows\unix平台,扩展性比.net好。

2,属性:java中属性定义和访问均要用getset方法,可以不成对出现。c#中属性,定义时getset必须同时出现,访问时用.号即可,不用getset
3
C#中不用任何范围修饰符时,默认的是protect,因而不能在类外被访问。JAVA规定在一个文件中只能有一个public类,而且这个类的名称必须与文件名一模一样。,C#中的访问修饰符与Java中的基本对应,但多出了一个internal。即C#5种类型的可访问性:

public:成员可以从任何代码访问。
protected
:成员只能从派生类访问。
internal
:成员只能从同一程序集的内部访问。
protected internal
:成员只能从同一程序集内的派生类访问。
private
:成员只能在当前类的内部访问。

4,在C#中,它是以Main方法来入口,如果一个程序中没有Main方法,就会出"找不到入口的错误",不要把Main写成mainc#是可以对Main进行重载(java中是main),允许有int返回值和空参数的Main

5C#预定义的简单数据类型比Java多。例如,C#unit,即无符号整数。

6Javastatic final修饰符声明常量。C#中常量可以用const关键词声明。C#的设计者还增加了readonly关键词,readonly域只能通过初始化器或类的构造函数设置
7
,在Java中,switch语句只能处理整数。但C#switch语句还能够处理字符变量。

8C#没有>>>移位操作符。c#保留了指针。unsafe

9goto关键词: Java不用goto关键词,你可以用带标签的语句加上breakcontinue取代C#中的goto。在C#中,goto允许你转到指定的标签。不过,C#以特别谨慎的态度对待goto,比如它不允许goto转入到语句块的内部。

10int[] x = { 0, 1, 2, 3 }; Int x[] = { 0, 1, 2, 3 };C#中,只有第一行代码合法,[]不能放到变量名字之后。

11C#允许为名称空间或名称空间中的类指定别名:using TheConsole = System.Console

12,在Java中,包的名字同时也是实际存在的实体,它决定了放置.java文件的目录结构。在C#中,物理的包和逻辑的名称之间是完全分离的。.NET中包的实体称为程序集(Assembly)。每一个程序集包含一个manifest结构。manifest列举程序集所包含的文件,控制哪些类型和资源被显露到程序集之外,并把对这些类型和资源的引用映射到包含这些类型与资源的文件。程序集是自包含的,一个程序集可以放置到单一的文件之内,也可以分割成多个文件。.NET的这种封装机制解决了DLL文件所面临的问题,即臭名昭著的DLL Hell问题。

13,在Java中,java.lang包是默认的包,C#中不存在默认的包。

14C#中不存在final关键词,如果想要某个类不再被派生,可用sealed关键词。

15,与Java不同,C#中的接口不能包含域(Field)。注意,在C#中,接口内的所有方法默认都是公用方法。在Java中,方法声明可以带有public修饰符(即使这并非必要),但在C#中,显式为接口的方法指定public修饰符是非法的。

16C#中的is操作符与Java中的instanceof操作符一样,两者都可以用来测试某个对象的实例是否属于特定的类型。在Java中没有与C#中的as操作符等价的操作符。as操作符与is操作符非常相似,但它更富有进取心:如果类型正确的话,as操作符会尝试把被测试的对象引用转换成目标类型;否则,它把变量引用设置成null

17C#仍旧保留了C++的内存手工管理方法,它适合在速度极端重要的场合使用,而在Java中这是不允许的。

17,在C#中,所有的异常都从一个名为Exception的类派生。

18C#中枚举器即enum类型(java),把它作为一个变量值的类型使用,从而把变量可能的取值范围限制为枚举器中出现的值。

19,传值方式:java中简单数据类型的值传参时,都以传值方式。在c#中如果加ref则会以引用的方式传值(方法内部改变该参数,则外部变量一起跟着变),加outref基本相同,但out不要求参数一定要初始化。


TAG:

 

评分:0

我来说两句

我的栏目

日历

« 2024-05-03  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 12296
  • 日志数: 18
  • 建立时间: 2013-03-14
  • 更新时间: 2013-05-13

RSS订阅

Open Toolbar