• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#与Java的区别

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

=> 预定义数据类型
c#:预定义的简单数据类型比java多。例如,c#有unit,即无符号整数。 

=> c#没有>>>移位操作符。  

=> 数组定义
c#:不支持int x[] = { 0, 1, 2, 3 };  

=> switch语句
c#:switch后的数据类型可以是sbyte,byte,short,ushort,uint,long,ulong,char,string或枚举类型(enum-type)。
java:java 1.6(包括)以前,只是支持等价成int 基本类型的数据:byte ,short,char,int(其他的都不可以)。1.7加入的新特性可以支持String类型的数据。 

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

=> c#中不存在final关键词,如果想要某个类不再被派生,可以使用sealed关键词。 

=> 在java中没有与c#中的as操作符等价的操作符。 

=> java中没有enum类型。 

=> java中没有结构体(Struct)。 

=> 传值方式:
c#:对于简单数据类型,可以通过ref或out以引用的方式传值。
java:对于简单数据类型,只能以传值方式传值。 

=> java中没有delegate。

=> 属性
c#:可以通过使用get和set定义属性,访问时用.号即可。还可以使用对象索引,例如:public string this [int index] {...}。
java:只能通过方法访问属性。  

=> 继承
c#:继承方式为class DerivedClass:BaseClass;在子类中调用父类的方法通过base.Method()。
java:继承方式为class DerivedClass extends BaseClass;在子类中调用父类的方法通过super.Method()。

=>异常
java:可在定义方法时声明会抛出异常int Function() throws Exception {...},在调用时必须使用try...catch,否则会编译不通过。
c#:可在方法内部抛出异常,调用时不要求一定要使用try...catch。

=>接口实现
c#:class A : IA;
java:class A implements IA;

=> 常量修饰符
c#:使用const关键词声明。c#还增加了readonly关键词。
java:使用static final修饰符。 

=> 与java不同,c#中的接口不能包含域(Field)。且在c#中,显示为接口的方法指定public修饰符是非法的。 

=> c#中,所有的异常都从一个名为Exception的类派生。

=> java:在一个文件中只能有一个public类,而且这个类的名称必须与文件名一模一样。 

=> 命名空间的别名:
c#:允许为名称空间或者名称空间中的类指定别名: using TheConsole = System.Console;
java:不允许。 

=> 程序入口
c#:以Main方法来定位入口的。如果一个程序中没有一个名为Main的方法,就会出"找不到入口的错误"。并可以重载Main,允许有int返回值和空参数的Main。
java:使用的是main。  

=> 包名与实体名的关系
c#:物理的包与逻辑实体的名称是完全分离的。
java:包的名字同时也是实际存在的实体,它决定了放置.java文件的目录结构。

=> java中,java.lang包是默认的包。c#不存在默认的包。

=> 默认范围修饰符
c#:不用任何范围修饰符时,默认的是protect,因而不能在类外被访问。
java:默认是default(不用写出来),意思是只能由跟这个类在同一个包中的类来访问,比private限制更少,但比protected限制更多。

=> internal访问修饰符
c#:有internal修饰符,其他与java一样。共五种访问修饰符:
  public:成员可以从任何代码访问。
  protected:成员只能从派生类访问。
  internal:成员只能从同一程序集的内部访问。
  protected internal:成员只能从同一程序集内的派生类访问。
  private:成员只能在当前类的内部访问。
java:没有internal修饰符。

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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#Graphics中有关绘图质量的几个Mode发布时间:2022-07-10
下一篇:
手把手教会你如何通过C#创建WindowsService发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap