技术总结---c#与java的区别【客户端使用java还是c#?
2020-09-21 本文已影响0人
程序员ken
因为近期需要做一个客户端,我主要的语言是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 加上标识就能标识
![](https://img.haomeiwen.com/i12816177/4cd4e64463f68e61.png)
c#中的特性:
![](https://img.haomeiwen.com/i12816177/495165e4d248cab3.png)
6.反射机制写法不一样:
java示例:
![](https://img.haomeiwen.com/i12816177/239f00b0086e2d92.png)
c#示例:
![](https://img.haomeiwen.com/i12816177/7dd9ac12c03722ea.png)
本文来源于:宋文超super,专属平台有csdn、思否(SegmentFault)、 简书、 开源中国(oschina),转载请注明出处。
本文来源于:宋文超super,专属平台有csdn、思否(SegmentFault)、 简书、 开源中国(oschina),转载请注明出处。