程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#與Vb Java的區別

C#與Vb Java的區別

編輯:C#入門知識

      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>     運行結果:    

\

 

 

\

        Java中也有異常處理語句,跟C#語言一樣,但vb中如果有異常了,需要我們手動添加異常處理語句。形如:on error goto xx    xx:      四:語言和運行過程   1,解釋型語言     把做好的源程序翻譯一句,然後執行一句,直到結束…….執行速度慢,效率低,依賴解釋器,跨平台好.     2,編譯型語言   把做好的源程序全部編譯成二進制代碼的可運行程序…...執行速度快,效率高,依賴編譯器,跨平台差   編譯型語言寫的程序執行之前,需要一個專門的編譯過程,把程序編譯成為機器語言的文件,以後要運行的話就不用重復翻譯啦,直接使用編譯的結果就行啦。     C# Java是解釋型語言是編譯型語言,Java,C#等的源碼先編譯成字節碼,再由虛擬機“解釋”執行字節碼。其中Java運行過程為源程序.java --編譯器.class--操作系統平台       Vb(C C++) 則是編譯型語言,它產生的最終代碼是可執行的,vb6.0版本之前的則是偽編譯型語言,最終最終編碼不能執行,需要動態鏈接庫去解釋執行,vb6.0和vb6.0之後的版本則是直接產生可執行的代碼。    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved