当前位置:编程学习 > VB >>

C#与Vb Java的区别

      C#与Java的区别总结如下:
    C#和Java都是比较规范的面相对象的编程语言,vb是基于对象的一种程序设计语言,所以C#语言,与Java语言相似,不同点少,C#和Java与Vb之间的差别多点,但是无论哪种语言,基本的数据类型和运算之间不会有冲突。
 
    下面是对这三种语言关系的总结。
   
一:语法基础
 
   1,运算符
     在C#中有sizeof 运算,在Java和Vb中没有(Java中有instanceof >>>,vb中有>>)。
     sizeof运算符用来返回某种数据类型(值类型)所占用的字节数,用法如下:
[csharp]  
<span style="font-size:18px;">    class Program  
    {  
        static void Main(string[] args)  
        {  
            Console.WriteLine(sizeof(Int32));    //显示int32 类型所占字符数  
            Console.WriteLine(sizeof(double));   //显示double类型所占字符数  
  
        }  
    }</span>  
 
    运行结果:
 
 
   
  2,数据类型
      C#中有枚举类型,用enum关键字,Javavb中没有枚举类型
[csharp]  
<span style="font-size:18px;">enum Ages{ZhangSan,LiSi,WangWu,aLiu}</span>  
 
 
  3,语句
      C#中特有语句foreach。foreach语句的作用是遍历数组。用法如下:
[csharp]  
<span style="font-size:18px;">    class Program  
    {  
        static void Main(string[] args)  
        {  
              
            int[] arr = new int[]{0,1,2,3}; //定义arr数组,并赋值  
            int even=0,odd=0;              //定义两个变量,并将初值赋为0  
            foreach (int i in arr)  //遍历arr数组中每一个数  
            {  
                if (i % 2 == 0)    //如果数组arr中的元素为偶数  
                    even++;        //even 变量加1  
                else               //如果不为偶数  
                    odd++;         //odd变量加1  
            }  
  
            Console.WriteLine(even);  
            Console.WriteLine(odd);  
  
        }  
    }</span>  
 
      运行结果:
 
    
 
  4,方法
    在C#中,一个参数在默认情况下是按值传递的,按引用传递的时候,要有关键字ref,Java中也是按值传递和按引用传递,在Vb中则是按值传递和按地址传递,名称不一样,性质一样。
    Vb中的关键字传值为ByVal,传地址为byref。传地址(引用),传递的是值得引用,传递后,指向的还是那个空间;传值,传递的是具体的值,传递后就不再有任何关系啦。
 
  5,C#和Java中个都有包,vb中没有;
    C#中方法以大写字母开头,变量以小写字母开头,Java中方法类似变量,以小写字母开头,类名以大写字母开头,vb中变量名称命名,或者是窗体名称命名的时候,都采用大写字母开头(驼峰式);
    C# Java注释语句一样(/*  */),vb用“’”;
    C#和Java都要有一个标准库来提供输入输出,C#中用Console.ReadLine (),Java中用BufferedReader keyin=new BufferedReadReader(new InputStreamReader(System.in);   System.out.printIn();
 
 
  6,循环
    C#中switch语句后必须用break;java和Vb中可以不用,在Java和vb中都允许为case语句使用“自然下移”语义,即如果当前case 的结果不对应,自动跳转到下一个case。
 
 
二:类
  1, C#和Java中都有class关键字标志的类,为应用类型,且每个类都有访问修饰符(public)。vb中也有类,创建的时候是在模块中,利用类生成器,而在C#和Java中直接定义在一个空间中即可。
 
  2,构造函数
  C#中有构造函数和析构函数,构造函数名称和类名一致,且没有返回值,用来初始化一些值,析构函数用来终止操作,Java中也有构造函数,不同的是在Java中不用定义析构函数,因为Java中存在自动垃圾回收机制。
 
  3,继承
  C#和Java中都有继承,C#中是单一继承,多个继承用接口实现,Java中存在多继承,父类名称间用“,”隔开;
  C#中继承用“:” 如Dog类继承Animal类 class Dog:Animal ,Java中用extends关键字,如A继承B class A extends B
  意义一样,不同的只有关键字。
 
  4,关系
   C#和Java中类间的关系有依赖,关联,组合,聚合。
   依赖关系在类中就是一种实用,A类依赖B类,就是A中使用B类,B类修改直接影响到A类,关系弱
   关联关系在类中就是一种引用,A类关联B类,就是A中引用了B类中的方法,在A类中以属性的形式表示,强依赖
   组合聚合都是整体和部分之间的关系,不同的是组合关系为contain-a (不可分割)聚合关系为has-a(可分割)
 
   在vb中我们经常讨论的是模块,窗体,类模块之间的关系。
    窗体是可视化的窗体,运行的时候展示,模块呢则是代码展示,类模块主要是为了与面向对象挂钩,在类模块中定义的东西,达到了封装的目的,就类似于第三方控件。
 
  还有在这里也体现了作用域,在模块中定义的变量为局部变量,在类模块中定义的变量是全局变量。
  
 
三:异常处理
  C#中,一个方法检测到一个错误条件时,引发异常,如除数为0。实例如下:
[csharp]  
<span style="font-size:18px;">    class Program  
    {  
        static void Main(string[] args)  
        {  
            int result=0;                                   //定义result变量,并赋初值为0  
            Console.WriteLine("请输入X的值:");  
            int x = Convert.ToInt32(Console.ReadLine());   //用x 获取键盘输入的值  
            Console.WriteLine("请输入Y的值:");              
            int y = Convert.ToInt32(Console.ReadLine());   //用y 获取键盘输入的值  
            try  
   
补充:软件开发 , C# ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,