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
{
result = 24 / (x-1) / (y - 1);
}
catch (Exception e) //捕獲異常
{
Console.WriteLine(e.Message); //輸出原因
}
Console.WriteLine("結果為{0}", result); //輸出result結果
}
}</span>
運行結果: