java與c#的語(yǔ)法區(qū)別詳細(xì)介紹
剛學(xué)Java時(shí)覺(jué)得語(yǔ)法同C#大致是相同的(應(yīng)該說(shuō)C#同Java大致相同,畢竟人家微軟的C#是有意模仿Java的語(yǔ)法習(xí)慣的)
比爾.蓋茨曾經(jīng)說(shuō)過(guò):“Java是最卓越的程序設(shè)計(jì)語(yǔ)言”
言歸正傳,下面探討Java同C#的語(yǔ)法不同之處。。。
1,命名空間與包
C#為了把實(shí)現(xiàn)相似功能的類組織在一起,引入了命名空間的概念(namespace)
Java中與此對(duì)應(yīng)的東西叫做包(package)
2,類的訪問(wèn)控制方面的不同
C#只有兩種:public和默認(rèn)(同internal)
public能被所有的類(同項(xiàng)目中和不同項(xiàng)目中)訪問(wèn)
internal(在class關(guān)鍵字前不加控制符時(shí)默認(rèn)為internal),表明類只能在同一項(xiàng)目中訪問(wèn)
Java也只有兩種:public和默認(rèn)
public能被所有的類訪問(wèn)
默認(rèn)(在class關(guān)鍵字前不加控制符時(shí))只能被同一包中的所有類訪問(wèn)
3,類成員的訪問(wèn)控制
C#中有四種:public,protected,private(默認(rèn)),internal(注意這里internal和默認(rèn)是不同的)
public能被所有的類訪問(wèn)
protected只能被子類訪問(wèn)
private(也即不寫任何控制符時(shí)的默認(rèn)情況下)只能類內(nèi)部訪問(wèn)
internal能被同一項(xiàng)目中的類訪問(wèn)
Java也有四種:public,protected,private和默認(rèn)
public能被所有的類訪問(wèn)
protected既能被同一個(gè)中的其他類訪問(wèn),也可以被不同包中的子類訪問(wèn)
private只能在類內(nèi)部使用
默認(rèn)可以被這個(gè)包中的其他類訪問(wèn),如果一個(gè)子類與父類位于不同的包中,子類也不能訪問(wèn)父類中的默認(rèn)訪問(wèn)控制成員
4,C#中類的繼承用通過(guò)冒號(hào):實(shí)現(xiàn),在Java中用extends
C#中實(shí)現(xiàn)接口通過(guò)冒號(hào):實(shí)現(xiàn),在Java中用implements
C#中密封類用sealed實(shí)現(xiàn),在Java中用final
C#中常數(shù)用const實(shí)現(xiàn),在Java中用final
C#中屬性用set,get代碼塊實(shí)現(xiàn),在Java中一般用類似于C#中的字段代表屬性,或者用setter,getter構(gòu)造器實(shí)現(xiàn)
C#中有部分類(partial)的概念,Java中沒(méi)有
C#中有readonly修飾屬性只讀,Java中沒(méi)有
C#中有virtual和override修飾虛方法和重寫方法,Java中沒(méi)有,Java中默認(rèn)父類中的方法都是virtual的
Java中有static{},synchroized{}代碼塊的概念,C#中沒(méi)有
Java中有標(biāo)簽(如labelA:)的概念,C#中沒(méi)有
C#中子類調(diào)用父類的方法用base.method(),Java中用super.method()
C#中用is來(lái)判斷一個(gè)實(shí)例是否是某一個(gè)類的,Java中用instanceof
C#中用foreach(int i in array)來(lái)對(duì)數(shù)組中每一個(gè)元素的遍歷,Java中用for(int i : array)
相關(guān)文章
Java集合排序規(guī)則接口Comparator用法解析
這篇文章主要介紹了Java集合排序規(guī)則接口Comparator用法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09springBoot 過(guò)濾器去除請(qǐng)求參數(shù)前后空格實(shí)例詳解
這篇文章主要為大家介紹了springBoot 過(guò)濾器去除請(qǐng)求參數(shù)前后空格實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11Mybatis-Plus分頁(yè)的使用與注意事項(xiàng)
分頁(yè)查詢每個(gè)人程序猿幾乎都使用過(guò),下面這篇文章主要給大家介紹了關(guān)于Mybatis-Plus分頁(yè)的使用與注意事項(xiàng)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04java Arrays快速打印數(shù)組的數(shù)據(jù)元素列表案例
這篇文章主要介紹了java Arrays快速打印數(shù)組的數(shù)據(jù)元素列表案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09Java8的Stream()與ParallelStream()的區(qū)別說(shuō)明
這篇文章主要介紹了Java8的Stream()與ParallelStream()的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)之健身俱樂(lè)部管理系統(tǒng)的實(shí)現(xiàn)
這是一個(gè)使用了java+SSM+Mysql+Jsp開(kāi)發(fā)的健身俱樂(lè)部管理系統(tǒng),是一個(gè)畢業(yè)設(shè)計(jì)的實(shí)戰(zhàn)練習(xí),具有俱樂(lè)部管理該有的所有功能,感興趣的朋友快來(lái)看看吧2022-02-02Java實(shí)現(xiàn)隨機(jī)驗(yàn)證碼功能實(shí)例代碼
在這里,我們使用servlet來(lái)實(shí)現(xiàn)隨機(jī)驗(yàn)證碼的實(shí)現(xiàn),有需要的朋友可以參考一下2013-08-08springboot如何獲取application.yml里值的方法
這篇文章主要介紹了springboot如何獲取application.yml里的值,文章圍繞主題相關(guān)自資料展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-04-04