首頁 Java java教程 c#和java的差別有哪些

c#和java的差別有哪些

Nov 11, 2019 pm 01:16 PM
c# java 差別

c#和java的差別有哪些

Java和C#都是程式設計的語言,它們是兩個不同方向的兩種語言。

相同點:

他們都是物件導向的語言,也就是說,它們都能實現物件導向的想法(封裝、繼承、多型)。

區別:

1. c#中的命名空間是namespace類似Java中的package(套件),在Java中導入套件用import而c#中用using。

2. c#和Java都是從main函數入口的,但是c#中的main函數的首字母必須大寫,它有四種寫法如下:

static void Main(string args[]){}

static int Main(string args[]){}

static void Main(){}

static void Main(){}

##而Java只有一種形式:static void main(String [] args){}

3.資料型態:Java跟c#基本上都差不多,但是Java的String類型的首字母必須大寫,而c#中可以小寫也可以大寫,還有布林型,Java中是boolean,c#中是bool。

4.變數的命名:Java中可以用$符號,而c#中不可以使用。

5.註:Java比c#少一種"///"的文件註解。

6.輸出:c#有三種方式輸出:Cosole.WriteLine(); Cosole.WriteLine(要輸出的值); Cosole.WriteLine("格式字串",變數列表); 前兩種的用法與Java中的ystem.out .println()方法的用法相同,第三種方式是根據佔位符輸出的,比Java更方便了。

7.控制流程語句:c#跟Java類似,還有c#中的switch如果case後面有內容必須要有break;Java可以沒有break;

#8.陣列:兩種語言的聲明都是用new關鍵字的。都可以在建立陣列的同時初始化如:int a[]={1,2,3,5,5};但是c#比Java多兩種初始化如:int a[]=new int[3]{1, 2,3}; int a[]=new int[]{1,2,3};

#9.方法中傳遞的參數:兩種語言都使用值傳遞與參考傳遞。

C#的引用傳遞的關鍵字是ref與out,ref著重於修改,而out專注於輸出。而Java中都以傳值方式;

10.存取修飾符:C#中的存取修飾符與Java中的基本對應,但多出了一個internal。簡而言之,C#有5種類型的可訪問性,如下所示:

public:成員可以從任何程式碼存取。 protected:成員只能從衍生類別存取。

internal:成員只能從同一組件的內部存取。

protected:成員只能從同一組件內的衍生類別存取。

private:成員只能在目前類別的內部存取。

11.由於C#中不存在final關鍵字,如果想要某個類別不再被派生,你可以使用sealed關鍵字來密封。

12.集合:兩種語言都有集合ArrayList,還有透過鍵存取值的Java中是HashMap而c#中是HashTable。 c#比Java多泛型集合List與Dictionary更容易了,無需拆箱裝箱了,更安全了。

13.繼承:Java中用關鍵字extends,c#只用":"就行了.呼叫父類別的建構方法Java用super關鍵字,而c#用base關鍵字。

14.多態:抽象類別和抽象方法兩種語言都用abstract關鍵字。 Java中另外一個類別如果繼承了它,實作直接重寫此方法就可以了;而c#必須加上關鍵字override實作。 C#也比Java多一種虛方法來實作多態。

15.介面:都用關鍵字interface定義,Java實作用關鍵字implements;c#用":"實作。在C#中,介面內的所有方法預設都是公用方法。在Java中,方法宣告可以帶有public修飾符(即使這並非必要),但在C#中,明確為介面的方法指定public修飾符是非法的。

16. C#中的is操作符與Java中的instanceof操作符一樣,兩者都可以用來測試某個物件的實例是否屬於特定的類型。在Java中沒有與C#中的as操作符等價的操作符。 as操作符與is操作符非常相似,但它更富有"進取心":如果類型正確的話,as操作符會嘗試把被測試的物件引用轉換成目標類型;否則,它把變數引用設定成null。

17.枚舉器即enum類型(java無),把它當作一個變數值的型別使用,從而把變數可能的取值範圍限制為在枚舉器中出現的值。

18.結構(Struct)與類別很相似,而結構是一種值類型,它存儲在棧中或者是嵌入式的,結構可以實現接口,可以像類一樣擁有成員,但結構不支持繼承。

19. c#保留了指標。 Unsafe。 (C#使用指標不安全,最後這條有待考證)

php中文網,大量的免費

Java入門教學,歡迎線上學習!

以上是c#和java的差別有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

H5和小程序與APP的區別 H5和小程序與APP的區別 Apr 06, 2025 am 10:42 AM

H5、小程序和APP的主要區別在於:技術架構:H5基於網頁技術,小程序和APP為獨立應用程序。體驗和功能:H5輕便易用,功能受限;小程序輕量級,交互性好;APP功能強大,體驗流暢。兼容性:H5跨平台兼容,小程序和APP受平台限制。開發成本:H5開發成本低,小程序中等,APP最高。適用場景:H5適合信息展示,小程序適合輕量化應用,APP適合複雜功能應用。

PS導出PDF如何設置密碼保護 PS導出PDF如何設置密碼保護 Apr 06, 2025 pm 04:45 PM

在 Photoshop 中導出帶密碼保護的 PDF:打開圖像文件。點擊“文件”>“導出”>“導出為 PDF”。設置“安全性”選項,兩次輸入相同的密碼。點擊“導出”生成 PDF 文件。

JavaScript中如何從指定DOM節點下使用XPath進行查找? JavaScript中如何從指定DOM節點下使用XPath進行查找? Apr 04, 2025 pm 11:15 PM

DOM節點下XPath查找方法詳解在JavaScript中,我們經常需要根據XPath表達式從DOM樹中查找特定的節點。如果需要從某�...

在router文件夾下的index.js文件中為什麼需要調用Vue.use(VueRouter)? 在router文件夾下的index.js文件中為什麼需要調用Vue.use(VueRouter)? Apr 05, 2025 pm 01:03 PM

在router文件夾下的index.js文件中註冊VueRouter的必要性在開發Vue應用程序時,常常會遇到關於路由配置的問題。特�...

console.log輸出結果差異:為什麼同樣的變量,打印方式不同,結果卻不一樣? console.log輸出結果差異:為什麼同樣的變量,打印方式不同,結果卻不一樣? Apr 04, 2025 am 11:48 AM

深入探討console.log輸出差異本文將分析一段代碼中console.log函數輸出結果不同的原因。代碼片段涉及URL參數解析�...

PHP與Python:了解差異 PHP與Python:了解差異 Apr 11, 2025 am 12:15 AM

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

為什麼使用 RxJS 處理流元素時沒有輸出?如何正確使用 of 和 from 操作符? 為什麼使用 RxJS 處理流元素時沒有輸出?如何正確使用 of 和 from 操作符? Apr 04, 2025 pm 06:36 PM

使用RxJS對流中元素進行操作時的問題探討在學習和使用RxJS...

SVG Path路徑參數的理解與應用:為什麼終點坐標是-.1 0而不是0 0,以及小寫字母a和z的使用有什麼區別? SVG Path路徑參數的理解與應用:為什麼終點坐標是-.1 0而不是0 0,以及小寫字母a和z的使用有什麼區別? Apr 05, 2025 pm 12:54 PM

SVGPath路徑參數的理解與應用在學習SVG(ScalableVector...

See all articles