C#与Vb Java的区别
来源:互联网 发布:4g网络不稳定怎么设置 编辑:程序博客网 时间:2024/05/21 17:46
C#与Java的区别总结如下:
C#和Java都是比较规范的面相对象的编程语言,vb是基于对象的一种程序设计语言,所以C#语言,与Java语言相似,不同点少,C#和Java与Vb之间的差别多点,但是无论哪种语言,基本的数据类型和运算之间不会有冲突。
下面是对这三种语言关系的总结。
一:语法基础
1,运算符
在C#中有sizeof 运算,在Java和Vb中没有(Java中有instanceof >>>,vb中有>>)。
sizeof运算符用来返回某种数据类型(值类型)所占用的字节数,用法如下:
class Program { static void Main(string[] args) { Console.WriteLine(sizeof(Int32)); //显示int32 类型所占字符数 Console.WriteLine(sizeof(double)); //显示double类型所占字符数 } }
运行结果:
2,数据类型
C#中有枚举类型,用enum关键字,Java中没有枚举类型,vb中有。
enum Ages{ZhangSan,LiSi,WangWu,aLiu}
3,语句
C#中特有语句foreach。foreach语句的作用是遍历数组。用法如下:
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); } }
运行结果:
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。实例如下:
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 { result = 24 / (x-1) / (y - 1); } catch (Exception e) //捕获异常 { Console.WriteLine(e.Message); //输出原因 } Console.WriteLine("结果为{0}", result); //输出result结果 } }
运行结果:
Java中也有异常处理语句,跟C#语言一样,但vb中如果有异常了,需要我们手动添加异常处理语句。形如:on error goto xx xx:
四:语言和运行过程
1,解释型语言
把做好的源程序翻译一句,然后执行一句,直到结束…….执行速度慢,效率低,依赖解释器,跨平台好.
2,编译型语言
把做好的源程序全部编译成二进制代码的可运行程序…...执行速度快,效率高,依赖编译器,跨平台差
编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,以后要运行的话就不用重复翻译啦,直接使用编译的结果就行啦。
Java是半编译半解释型语言,C#是编译型语言,Java等的源码先编译成字节码,再由虚拟机“解释”执行字节码。其中Java运行过程为源程序.java --编译器.class--操作系统平台
vb则是解释型语言,它运行前要生成.exe格式的文件,vb6.0版本之前的则是伪编译型语言,最终最终编码不能执行,需要动态链接库去解释执行,vb6.0和vb6.0之后的版本则是直接产生可执行的代码。
附:程序的执行过程
1,load到内存区
2,找到main方法开始执行
3,执行过程中内存管理
code segment(代码段) 存放代码的方法和函数
data segment(数据段)静态变量字符串常量
stack(栈) 局部变量
heap(堆) new出来的东西
- C#与Vb Java的区别
- VB与C#的区别
- VB与C#的区别
- C#与vb.net的区别
- VB.NET与C#的一些区别
- C#与vb.net的区别
- C#与VB.NET的区别
- vb.net与c#的语法区别
- C#与VB.Net之间的区别
- C#与Vb循环的区别
- vb.net与c#的语法区别
- C#之数据类型与Vb的区别
- VB与java区别
- vb和C#的区别
- c#与java的区别
- c#与java的区别
- c#与java的区别
- C#与java的区别
- 使用jquery实现图片等比例缩放
- C语言位运算符:与、或、异或、取反、左移和右移
- Asp.net中提示【当前上下文中不存在名称“Request“或"Server"】解决方法!
- jiazaiqi
- 数据库系统原理教程 第六章 数据库设计 习题集
- C#与Vb Java的区别
- 关于加了hibernate 框架的项目启动特别慢的问题
- 【Perl读书笔记】数组转换为行操作join函数
- java面向对象基础_final
- php同时使用session和cookie来保存用户登录信息
- python实例属性和类属性精讲
- 回答python贴吧"python循环10亿次你们花了多长时间?"的问题
- JAVA this 关键字
- 精通CSS+DIV网页样式与布局——CSS文字效果