日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > C# >内容正文

C#

c#与java_C#与Java的区别

發(fā)布時(shí)間:2024/9/19 C# 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c#与java_C#与Java的区别 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

=>預(yù)定義數(shù)據(jù)類型

c#:預(yù)定義的簡(jiǎn)單數(shù)據(jù)類型比java多。例如,c#有unit,即無(wú)符號(hào)整數(shù)。

=>c#沒(méi)有>>>移位操作符。

=>數(shù)組定義

c#:不支持int x[] = { 0, 1, 2, 3 };

=>switch語(yǔ)句

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)簽。不過(guò),C#以特別謹(jǐn)慎的態(tài)度對(duì)待goto,比如它不允許goto轉(zhuǎn)入到語(yǔ)句塊的內(nèi)部。

java:不用goto關(guān)鍵詞。在Java中,你可以用帶標(biāo)簽的語(yǔ)句加上break或continue取代c#中的goto。

=>c#中不存在final關(guān)鍵詞,如果想要某個(gè)類不再被派生,可以使用sealed關(guān)鍵詞。

=>在java中沒(méi)有與c#中的as操作符等價(jià)的操作符。

=>java中沒(méi)有enum類型。

=>java中沒(méi)有結(jié)構(gòu)體(Struct)。

=>傳值方式:

c#:對(duì)于簡(jiǎn)單數(shù)據(jù)類型,可以通過(guò)ref或out以引用的方式傳值。

java:對(duì)于簡(jiǎn)單數(shù)據(jù)類型,只能以傳值方式傳值。

=>java中沒(méi)有delegate。

=>屬性

c#:可以通過(guò)使用get和set定義屬性,訪問(wèn)時(shí)用.號(hào)即可。還可以使用對(duì)象索引,例如:public?string this [int index] {...}。

java:只能通過(guò)方法訪問(wèn)屬性。

=>繼承

c#:繼承方式為class DerivedClass:BaseClass;在子類中調(diào)用父類的方法通過(guò)base.Method()。

java:繼承方式為class DerivedClass extends BaseClass;在子類中調(diào)用父類的方法通過(guò)super.Method()。

=>異常

java:可在定義方法時(shí)聲明會(huì)拋出異常int Function() throws Exception {...},在調(diào)用時(shí)必須使用try...catch,否則會(huì)編譯不通過(guò)。

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方法來(lái)定位入口的。如果一個(gè)程序中沒(méi)有一個(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,因而不能在類外被訪問(wèn)。

java:默認(rèn)是default(不用寫出來(lái)),意思是只能由跟這個(gè)類在同一個(gè)包中的類來(lái)訪問(wèn),比private限制更少,但比protected限制更多。

=>internal訪問(wèn)修飾符

c#:有internal修飾符,其他與java一樣。共五種訪問(wèn)修飾符:

public:成員可以從任何代碼訪問(wèn)。

protected:成員只能從派生類訪問(wèn)。

internal:成員只能從同一程序集的內(nèi)部訪問(wèn)。

protected internal:成員只能從同一程序集內(nèi)的派生類訪問(wèn)。

private:成員只能在當(dāng)前類的內(nèi)部訪問(wèn)。

java:沒(méi)有internal修飾符。

=>c#仍舊保留了c++的內(nèi)存手工管理方法,適合在速度極端重要的場(chǎng)合使用,而在java中這是不允許的。

總結(jié)

以上是生活随笔為你收集整理的c#与java_C#与Java的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。