Java与C#的语法区别
1.作用域
在java中
{
{
int a=1;
}
int a=2;//以上a作用域外的以下,再声明同名的变量,是允许的;
}
在C#中,以上是不允许的【只要在同一个作用域内,以上或以下的代码中 不能存在同名变量】
2.布尔值
在java中,布尔值用boolean
在C#中,布尔值用bool
3.命名规则
在java中,函数的命名是小驼峰式:首字母小写,其他单词首字母大写
在C#中,函数名命名是大驼峰式:所有单词的首字母都是大写
4.静态代码块
在java中,有静态代码块的概念 static{//。。。}
在C#中,没有静态代码块的概念
5.接口默认方法
在Java中,接口有默认方法:default void fun(){}//方法体必须有,为了解决在后期在接口中添加新方法(新方法会导致以前的子类,没有实现该方法,这时候就可以定义默认方法)。
在C#中,没有默认方法。
6.接口静态方法
在java中,接口可以有静态方法,(且已经实现了其方法体)
在C#中没有静态方法
7.私有方法
在java 中,接口可以有私有方法
8.判断子类类型
在java中,用instanceof people instanceof Chinese
在C# 中,用is people is Chinese
9.顶级object类
在C#中,所有数据类型都是继承于object
在Java中,是所有类类型都继承于object,而像int这样的基本数据类型,它有对应的类类型,jvm会自动将int类型的数值自动装箱成Integer类型,该Integer变量会向上转型成为一个Object对象。
10.内部类
在java中,内部类,在外部如何使用, outerClass.innerClass=new outerClass().new innerClass();
11.泛型
Java中泛型通配符?. Collection<?>只能作为参数传递。Collection<? extend classB> Collection<? super classB>