您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關C#和Java的相同點與不同點,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
相同點:
都是面向對象編程的語言,都能夠實現面向對象的(封裝,繼承,多態)思想
不同點:
1. c#中的命名空間是namespace類似于Java中的package(包),在Java中導入包用import而c#中用using。
2. c#和Java都是從main函數入口的,但是c#中的main函數的首字母必須大寫
3. 數據類型:Java跟c#基本都差不多,但是Java的String類型的首字母必須大寫,而c#中可以小寫也可以大寫,還有布爾型,Java中是boolean,c#中是bool。
4. 變量的命名:Java中可以用$符號,而c#中不可以使用。
5. 輸出:c#有三種方式輸出:Cosole.WriteLine(); Cosole.WriteLine(要輸出的值); Cosole.WriteLine("格式字符串",變量列表); 前兩種的用法與Java中的ystem.out.println()方法的用法相同,第三種方式是根據占位符輸出的,比Java更方便了
6. 控制流語句:c#跟Java類似,還有c#中的switch如果case后面有內容必須要有break;Java可以沒有break;
7. Java中的static final修飾符。在C#中,常量可以用const關鍵詞聲明。
8. 訪問修飾符:C#中的訪問修飾符與Java中的基本對應,但多出了一個internal。簡而言之,C#有5種類型的可訪問性,如下所示:
public:成員可以從任何代碼訪問。protected:成員只能從派生類訪問。
internal:成員只能從同一程序集的內部訪問。
protected:成員只能從同一程序集內的派生類訪問。
private:成員只能在當前類的內部訪問。
9. 由于C#中不存在final關鍵詞,如果想要某個類不再被派生,你可以使用sealed關鍵詞密封。
10. 集合:兩種語言都有集合ArrayList,還有通過鍵訪問值的Java中是HashMap而c#中是HashTable。c#比Java多泛型集合List<T>與Dictionary<K,V>更容易了,無需拆箱裝箱了,更安全了。
11. 繼承:Java中用關鍵字extends,c#只用":"就行了.調用父類的構造方法Java用super關鍵字,而c#用base關鍵字。
12. 多態:抽象類和抽象方法兩種語言都用abstract關鍵字。Java中另外一個類如果繼承了它,實現直接重寫此方法就可以了;而c#必須加上關鍵字override實現。C#還比Java多一種虛方法來實現多態。
13. 接口:都用關鍵字interface定義,Java實現用關鍵字implements;c#用":"實現。在C#中,接口內的所有方法默認都是公用方法。在Java中,方法聲明可以帶有public修飾符(即使這并非必要),但在C#中,顯式為接口的方法指定public修飾符是非法的。
14. C#中的is操作符與Java中的instanceof操作符一樣,兩者都可以用來測試某個對象的實例是否屬于特定的類型。在Java中沒有與C#中的as操作符等價的操作符。as操作符與is操作符非常相似,但它更富有"進取心":如果類型正確的話,as操作符會嘗試把被測試的對象引用轉換成目標類型;否則,它把變量引用設置成null。
15. 聲明數組
在Java中,數組的聲明方法非常靈活,實際上有許多種聲明方法都屬于合法的方法。例如,下面的幾行代碼是等價的:
int[] x = { 0, 1, 2, 3 }; int x[] = { 0, 1, 2, 3 };
但在C#中,只有第一行代碼合法,[]不能放到變量名字之后。
關于C#和Java的相同點與不同點就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。