技术总结---c#与java的区别【客户端使用java还是c#?】

因为近期需要做一个客户端,我主要的语言是java,但java写客户端 你们懂的 swing什么很丑的,所以选取了c#来做客户端。

由于有几年的编程经验,所以c#的上手还是挺快的 ,看了三四天 也能做一些东西了。这个项目主要是运用c#的窗体。后面遇到了一些坑,我会慢慢道来。

首先先说一下c#和java的区别

相同点:

1.首先c#和java都是面向对象的一种语言

它跟java一样有类 接口 枚举等 有访问修饰符【这边有点区别,想了解可以百度,就不在此做介绍了】

2.有大多数的编程语言一样 有反射机制

3.有重载 重写

4.c#和Java都是从main函数入口

5.其他不做过多的说明。。。

不同点:

1.访问修饰符:

      C#中的访问修饰符与Java中的基本对应,但多出了一个internal。简而言之,C#有5种类型的可访问性,如下所示:  

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

2.继承:

 Java中用关键字extends,c#只用":"就行了.调用父类的构造方法Java用super关键字,而c#用base关键字。

3.接口:

 3.1 都用关键字interface定义,Java实现用关键字implements;c#用":"实现。在C#中,接口内的所有方法默认都是公用方法。在Java中,方法声明可以带有public修饰符(即使这并非必要),但在C#中,显式为接口的方法指定public修饰符是非法的。

3.2 接口不能实例化,当然java也不行,这里说的是c#中如果要用接口必须使用它的实现类,而java可以创建一个匿名的“接口”。这个我感觉java更方便。

4. 集合:

java一般集合取值是list.get(i) c#的取值是list[i] 这种风格有点类似数组

5.注解和特性 【说法不一样 ,本质是一样的】

java中注解 @interface 加上标识就能标识

c#中的特性:

6.反射机制写法不一样:

java示例:

c#示例:

本文来源于:宋文超super,专属平台有csdn、思否(SegmentFault)、 、 开源中国(oschina),转载请注明出处。
本文来源于:宋文超super,专属平台有csdn、思否(SegmentFault)、 、 开源中国(oschina),转载请注明出处。

你可能感兴趣的:(技术总结---c#与java的区别【客户端使用java还是c#?】)