java和C#的一些不同之处

来源:互联网 发布:数学与泛型编程 编辑:程序博客网 时间:2024/06/06 13:08
java和C#关键的不同点和相似点:
1。java程序的入口点是main(), 而C#程序的入口点是Main(),若写错了两者都无法工作。
2。java中的final声明变量时应该等于C#中的const,效果等于声明常量。
//java从5.0开始居然也有enum了。。。汗。。。。
3。java中字符串和C#中字符串非常相似,不过java中用charAt()代替c#中的[],非常不方便啊
4。java中同样有StringBuilder类。
5。java中不允许用“==”判断字符串是否相等!!!!!!!否则会出现严重的bug,要比较请用equal()5。java中不允许用“==”判断字符串是否相等!!!!!!!否则会出现严重的bug,要比较请用equal()。
6。java和c#中都不允许在两个互相嵌套的语句块中声明相同的变量。
7。java中的switch-case语句只能比较枚举类型或者整数类型,无法检测字符串;C#中除了可以比较枚举和整数常量之外,还可以比较字符串。
8。java中有c#没有的大数,不过大数没有重载四则运算,需要调用相应的函数。
9。java 5.0中引入了类似c#中foreach的语句,语法为for(integer i:arr){}
10。java中允许长度为0的数组,例如:
    int i=0;
    int[] arr = new int[i];
    甚至允许动态的声明数组大小
    int i=0;
    Scanner s = new Scanner(System.in);
    i = s.nextInt();
    int[] arr = new int[i];
    原来。。。C#和java一样。。只不过之前没有发现罢了。
11。java中声明二维数组用type[][] var = new type[num][num],而c#中用type[,] var = new type[num,num]
12。java中没有C#中的attribute,所以只能用函数实现,譬如,C#代码
    public string Name
    {
        get
        {
            return _name;
        }
        set
        {
            this._name = value;
        }
    }
若要在java中实现,必须采用笨拙的如下方法:
    public string getName()
    {
        return _name;
    }
    public void setName(string name)
    {
        this._name = name;
    }
13。java中一个文件中只能有最多一个public类,但是可以有任意个私有类,且文件名必须和此文件中包含的公共类名称完全相同;C#中一个文件中可以有任意个public类。
14。java中只能用String来声明一个字符串,而C#中同样可以用string。
15。头一次注意到这个问题。。。居然可以访问另外一个实例的私有字段,C#和java完全一样,看来C#借鉴了不少java的特点啊。。。《java2核心技术 卷1:基础知识》中解释说道:类方法可以访问任何一个类实例的私有字段。
C#代码:
        class Test
        {
        private string name;
        public Test(string name)
        {
            this.name = name;
        }

        public override bool Equals(object obj)
        {
            if (this.name == ((Test)obj).name)
            {
            return true;
            }
            return false;
        }
        }

Java代码:
    class Test
    {
        private String name;
       
        public Test(String name)
        {
        this.name = name;
        }
       
        public boolean equal(Test t)
        {
        if(this.name == t.name)
        {
            return true;
        }
        return false;
        }
    }
 http://9esuluciano.javaeye.com/blog/103332
原创粉丝点击