當前位置:才華齋>計算機>java語言>

Java同C#的語法不同之處

java語言 閱讀(9.29K)

Java看起來設計得很像C++,但是為了使語言小和容易熟悉,設計者們把C++語言中許多可用的特徵去掉了,這些特徵是一般程式設計師很少使用的。那麼Java同C#的語法不同之處在哪裡呢?以下僅供參考!

Java同C#的語法不同之處

1.名稱空間與包

C#為了把實現相似功能的類組織在一起,引入了名稱空間的概念(namespace)

Java中與此對應的東西叫做包(package)

2.類的'訪問控制方面的不同

C#只有兩種:public和預設(同internal)

public能被所有的類(同項目中和不同專案中)訪問 internal(在class關鍵字前不加控制符時預設為internal),表明類只能在同一專案中訪問

Java也只有兩種:public和預設

public能被所有的類訪問 預設(在class關鍵字前不加控制符時)只能被同一包中的所有類訪問

3.類成員的訪問控制

C#中有四種:public,protected,private(預設),internal(注意這裡internal和預設是不同的)

public能被所有的類訪問 protected只能被子類訪問 private(也即不寫任何控制符時的預設情況下)只能類內部訪問 internal能被同一專案中的類訪問

Java也有四種:public,protected,private和預設

public能被所有的類訪問 protected既能被同一個中的其他類訪問,也可以被不同包中的子類訪問 private只能在類內部使用 預設可以被這個包中的其他類訪問,如果一個子類與父類位於不同的包中,子類也不能訪問父類中的預設訪問控制成員

4.其他語法

C#中類的繼承用通過冒號:實現,在Java中用extends

C#中實現介面通過冒號:實現,在Java中用implements

C#中密封類用sealed實現,在Java中用final

C#中常數用const實現,在Java中用final

C#中屬性用set,get程式碼塊實現,在Java中一般用類似於C#中的欄位代表屬性,或者用setter,getter構造器實現

C#中有部分類(partial)的概念,Java中沒有

C#中有readonly修飾屬性只讀,Java中沒有

C#中有virtual和override修飾虛方法和重寫方法,Java中沒有,Java中預設父類中的方法都是virtual的

Java中有static{},synchroized{}程式碼塊的概念,C#中沒有

Java中有標籤(如labelA:)的概念,C#中沒有

C#中子類呼叫父類的方法用od(),Java中用od()

C#中用is來判斷一個例項是否是某一個類的,Java中用instanceof

C#中用foreach(int i in array)來對陣列中每一個元素的遍歷,Java中用for(int i : array)