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# ,
- 更多VB疑问解答:
- vb把图片转换成 base64代码
- 批处理转移文 之errorlevel
- vb 6.0 调用vb.net dll混合程序集错误
- VB inet控件访问ftp 本机测试通过客户机inet控件使用失败。急!!
- 求助在Dir1控件当前目录下新建一个文件夹的代码
- CreateObject创建Word Excel对象失败,提示,无法加载DLL,怎么解决?
- 有两个磁盘阵列,如何使用能达到最好的效果
- cloudStack 如何实现 vSphere的DRS功能
- 和难缠客户的那些事儿
- 批处理转移文 之errorlevel
- vb 6.0 调用vb.net dll混合程序集错误
- VB inet控件访问ftp 本机测试通过客户机inet控件使用失败。急!!
- 求助在Dir1控件当前目录下新建一个文件夹的代码
- CreateObject创建Word Excel对象失败,提示,无法加载DLL,怎么解决?
- 有两个磁盘阵列,如何使用能达到最好的效果