都是面向对象编程的语言,都能够实现面向对象的(封装,继承,多态)思想
不同点:
1.c#中的命名空间是namespace类似于java中的package(包),在java中导入包用import而c#中用using。
2.c#和java都是从main函数入口的,但是c#中的main函数的首字母必须大写
3.数据类型:java跟c#基本都差不多,但是java的string类型的首字母必须大写,而c#中可以小写也可以大写,还有布尔型,java中是boolean,c#中是bool。
4.变量的命名:java中可以用$符号,而c#中不可以使用。
5.输出:c#有三种方式输出:cosole.writeline(); cosole.writeline(要输出的值); cosole.writeline(格式字符串,变量列表); 前两种的用法与java中的ystem.out.println()方法的用法相同,第三种方式是根据占位符输出的,比java更方便了
6.控制流语句:c#跟java类似,还有c#中的switch如果case后面有内容必须要有break;java可以没有break;
7. java中的static final修饰符。在c#中,常量可以用const关键词声明。
8.访问修饰符:c#中的访问修饰符与java中的基本对应,但多出了一个internal。简而言之,c#有5种类型的可访问性,如下所示:
public:成员可以从任何代码访问。protected:成员只能从派生类访问。
internal:成员只能从同一程序集的内部访问。
protected:成员只能从同一程序集内的派生类访问。
private:成员只能在当前类的内部访问。
9.由于c#中不存在final关键词,如果想要某个类不再被派生,你可以使用sealed关键词密封。
10. 集合:两种语言都有集合arraylist,还有通过键访问值的java中是hashmap而c#中是hashtable。c#比java多泛型集合list8742468051c85b06f0a0af9e3e506b5c与dictionaryb77a8d9c3c319e50d4b02a976b347910更容易了,无需拆箱装箱了,更安全了。
11. 继承:java中用关键字extends,c#只用:就行了.调用父类的构造方法java用super关键字,而c#用base关键字。
12. 多态:抽象类和抽象方法两种语言都用abstract关键字。java中另外一个类如果继承了它,实现直接重写此方法就可以了;而c#必须加上关键字override实现。c#还比java多一种虚方法来实现多态。
13. 接口:都用关键字interface定义,java实现用关键字implements;c#用:实现。在c#中,接口内的所有方法默认都是公用方法。在java中,方法声明可以带有public修饰符(即使这并非必要),但在c#中,显式为接口的方法指定public修饰符是非法的。
14. c#中的is操作符与java中的instanceof操作符一样,两者都可以用来测试某个对象的实例是否属于特定的类型。在java中没有与c#中的as操作符等价的操作符。as操作符与is操作符非常相似,但它更富有进取心:如果类型正确的话,as操作符会尝试把被测试的对象引用转换成目标类型;否则,它把变量引用设置成null。
15. 声明数组
在java中,数组的声明方法非常灵活,实际上有许多种声明方法都属于合法的方法。例如,下面的几行代码是等价的:
int[] x = { 0, 1, 2, 3 }; int x[] = { 0, 1, 2, 3 };
但在c#中,只有第一行代码合法,[]不能放到变量名字之后。
感谢大家的阅读,希望大家收益多多。
本文转自:https://blog.csdn.net/qq_39657909/article/details/80781481
推荐教程:《c语言》
以上就是对比分析c#与java的区别的详细内容。