c#与java_C#与Java的区别
=>預(yù)定義數(shù)據(jù)類型
c#:預(yù)定義的簡單數(shù)據(jù)類型比java多。例如,c#有unit,即無符號(hào)整數(shù)。
=>c#沒有>>>移位操作符。
=>數(shù)組定義
c#:不支持int x[] = { 0, 1, 2, 3 };
=>switch語句
c#:switch后的數(shù)據(jù)類型可以是sbyte,byte,short,ushort,uint,long,ulong,char,string或枚舉類型(enum-type)。
java:java 1.6(包括)以前,只是支持等價(jià)成int 基本類型的數(shù)據(jù):byte ,short,char,int(其他的都不可以)。1.7加入的新特性可以支持String類型的數(shù)據(jù)。
=>goto關(guān)鍵詞
c#:goto允許你轉(zhuǎn)到指定的標(biāo)簽。不過,C#以特別謹(jǐn)慎的態(tài)度對(duì)待goto,比如它不允許goto轉(zhuǎn)入到語句塊的內(nèi)部。
java:不用goto關(guān)鍵詞。在Java中,你可以用帶標(biāo)簽的語句加上break或continue取代c#中的goto。
=>c#中不存在final關(guān)鍵詞,如果想要某個(gè)類不再被派生,可以使用sealed關(guān)鍵詞。
=>在java中沒有與c#中的as操作符等價(jià)的操作符。
=>java中沒有enum類型。
=>java中沒有結(jié)構(gòu)體(Struct)。
=>傳值方式:
c#:對(duì)于簡單數(shù)據(jù)類型,可以通過ref或out以引用的方式傳值。
java:對(duì)于簡單數(shù)據(jù)類型,只能以傳值方式傳值。
=>java中沒有delegate。
=>屬性
c#:可以通過使用get和set定義屬性,訪問時(shí)用.號(hào)即可。還可以使用對(duì)象索引,例如:public?string this [int index] {...}。
java:只能通過方法訪問屬性。
=>繼承
c#:繼承方式為class DerivedClass:BaseClass;在子類中調(diào)用父類的方法通過base.Method()。
java:繼承方式為class DerivedClass extends BaseClass;在子類中調(diào)用父類的方法通過super.Method()。
=>異常
java:可在定義方法時(shí)聲明會(huì)拋出異常int Function() throws Exception {...},在調(diào)用時(shí)必須使用try...catch,否則會(huì)編譯不通過。
c#:可在方法內(nèi)部拋出異常,調(diào)用時(shí)不要求一定要使用try...catch。
=>接口實(shí)現(xiàn)
c#:class A : IA;
java:class A implements IA;
=>常量修飾符
c#:使用const關(guān)鍵詞聲明。c#還增加了readonly關(guān)鍵詞。
java:使用static final修飾符。
=>與java不同,c#中的接口不能包含域(Field)。且在c#中,顯示為接口的方法指定public修飾符是非法的。
=>c#中,所有的異常都從一個(gè)名為Exception的類派生。
=>java:在一個(gè)文件中只能有一個(gè)public類,而且這個(gè)類的名稱必須與文件名一模一樣。
=>命名空間的別名:
c#:允許為名稱空間或者名稱空間中的類指定別名: using TheConsole = System.Console;
java:不允許。
=>程序入口
c#:以Main方法來定位入口的。如果一個(gè)程序中沒有一個(gè)名為Main的方法,就會(huì)出"找不到入口的錯(cuò)誤"。并可以重載Main,允許有int返回值和空參數(shù)的Main。
java:使用的是main。
=>包名與實(shí)體名的關(guān)系
c#:物理的包與邏輯實(shí)體的名稱是完全分離的。
java:包的名字同時(shí)也是實(shí)際存在的實(shí)體,它決定了放置.java文件的目錄結(jié)構(gòu)。
=>java中,java.lang包是默認(rèn)的包。c#不存在默認(rèn)的包。
=>默認(rèn)范圍修飾符
c#:不用任何范圍修飾符時(shí),默認(rèn)的是protect,因而不能在類外被訪問。
java:默認(rèn)是default(不用寫出來),意思是只能由跟這個(gè)類在同一個(gè)包中的類來訪問,比private限制更少,但比protected限制更多。
=>internal訪問修飾符
c#:有internal修飾符,其他與java一樣。共五種訪問修飾符:
public:成員可以從任何代碼訪問。
protected:成員只能從派生類訪問。
internal:成員只能從同一程序集的內(nèi)部訪問。
protected internal:成員只能從同一程序集內(nèi)的派生類訪問。
private:成員只能在當(dāng)前類的內(nèi)部訪問。
java:沒有internal修飾符。
=>c#仍舊保留了c++的內(nèi)存手工管理方法,適合在速度極端重要的場合使用,而在java中這是不允許的。
總結(jié)
以上是生活随笔為你收集整理的c#与java_C#与Java的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 特征选择和特征提取
- 下一篇: java query api_Elast