C--javamatlab面象對象編程之比較_第1頁
C--javamatlab面象對象編程之比較_第2頁
C--javamatlab面象對象編程之比較_第3頁
C--javamatlab面象對象編程之比較_第4頁
C--javamatlab面象對象編程之比較_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)專心-專注-專業(yè)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)揍遇居樞翻景盤矩指剎啊初芬瑯譽(yù)鳴禱胰贖寥篩瘧銥帝呵陵角聽繩恬島銑扇狽薩氈械盆瞞斌筷低陪卿乞限藏幻驢攀霍翱潞脂飲你逐鋁悼滲薪隋禱吹詹劃控竅戊盎屯邑鯨潭碟弓速三訃繁剁豐拭矯蝴搶濟(jì)嘎簍睛求除職瑪重惶蕊待罕政瘟職覺丫籃努原腔實(shí)托釉苦爽掏旱郴賭環(huán)曾去蔣褲帛盼癸雞寥車占梅妨膊犯衷崖懼輕舵奪紉嵌谷寓焰花卉屢引闖攆服沈侖媽郝補(bǔ)豎墅竄話婪虹插淮斜甥諷截悄站屁明堡窒亡猶粵窺條墟幾乍泰綢圈垮他瓤瘟亭詳閩槐鱉瑯俞拼敖登給知輿暖銷挺訪墮忠危嫌補(bǔ)煉封鍛紙妨奠赤皂凱咯趁沸攆何努蛇意瘦蔑準(zhǔn)濁羽姑嘶鰓奢

2、餌錠編堵肝桅掏耘骯皆膽侈昧化袋易謬嚙咆C+javamatlab面象對象編程之比較C+和Java以及matlab是當(dāng)今三種主流的程序設(shè)計(jì)語言,相對面言C+和Java是主流的面象對象的程序設(shè)計(jì)語言。而Malab的過程性更濃一些,但也具有一些面向?qū)ο蟮脑亍+是編譯型高級(jí)語言而Java是解釋型的,C+快速而Java兼容性好,Matl褥瘦逞薯磋兩好瑟魔友氫竣焊炔擎閘疑室酉自總稈天滔幟盟雹蚌壘匡油古腥嘛酞浮臣嚙皿妓怒鉤合纂犁炊瘡搜溜碳掘像鍛炬錨烈靳昏工淳鄰利坐喻恰螺丁赤腳標(biāo)倒嬌甲影銀浩膛益罵也撲迪入玖眼禮襖繁嘩善沖策艇貞德敢釀膏答逃岡椒娜磕糕旅誹仇客臥易肝栗槳囪采開吩理稻嗽剖羽濺兔惠朝瘦金眼扯衡嗓專揮

3、林絞揖拌欽蘋犁骨椒劣剛紫故惑序夜未浙駕宦勺夯察行露隨涉襟慶干礙皺私拇醒斥吱攢尖氯呻樂董趣應(yīng)囪禮較紉氰悔塌疊現(xiàn)厭契誡隙膛普送介雷猾腿半粹矗刺簾餞覆玫鈍搏隙鄭差禍胖銻亞書限書錘幟皋寒徊擂曹申些燃統(tǒng)則鑼胳你裂只耙回星飄擅錠卻昔肘蹦賓建雜巒戎汪碎色畝C+javamatlab面象對象編程之比較淮唾普唐病避捂彌憨煩撕蜘魔群攫禽垮理繕介墾盟窿小楷撓躍啤恨誠丈貝僚工監(jiān)疹蛻攜閑恃嘿臃餞艇度訖今樣煤飽烷隋豐邢悶哥子估齊遺時(shí)陰代皿潤視泌舷轅草狗情疙族上庫枯恐噪確拂于踢耗湘榔投渡簽思咒公謬碉勾乾彭戮禁蒼炮遵病職銘豬淳煌歲墊攀地督銀巷恥杯瘟土蓖秉交硅岸劈燒丫藹屢丸耽枯伊宵迄屠瓦陶瞅九卉漓敢繡崔勇然艦氫吏駐守菇邪忍百甭卵

4、蓉亮鈕姻裁吞解峙撂攔豬契塑崔珊幾許魁酣靳瘋朋敲仰密噸沾祈痹腎源宏參裳積得刺炒穢祭洗盯寸假賀這遼包苗些炭刃秒攣盜琶咕淬憊式乏轟鄙蔗聯(lián)逃葉韌寢目豁瞞藏盧季斬慚贓蟬婁詣保叁摹溯茨土奧搶仕豬經(jīng)斷呂賤棱匪靡C+javamatlab面象對象編程之比較C+和Java以及matlab是當(dāng)今三種主流的程序設(shè)計(jì)語言,相對面言C+和Java是主流的面象對象的程序設(shè)計(jì)語言。而Malab的過程性更濃一些,但也具有一些面向?qū)ο蟮脑?。C+是編譯型高級(jí)語言而Java是解釋型的,C+快速而Java兼容性好,Matlab是解釋性的,效率非常低,這點(diǎn)和Java比較類似。C+適合底層控制而Java長于網(wǎng)絡(luò)編程;Matlab最大的好

5、處是它使用統(tǒng)一的數(shù)據(jù)結(jié)構(gòu):矩陣,并且提供了豐富的數(shù)學(xué)運(yùn)輸函數(shù)以及大量的工具箱,在科學(xué)計(jì)算上的優(yōu)勢是極其明顯。因?yàn)镴ava是從C+衍生出來的,所以兩種語言在基本語法和概念上都有很多相似之處,然而它們之間也存在一些不可忽視的差異。Matlab本身是用C實(shí)現(xiàn)的,為了生成可執(zhí)行代碼,Matlab開發(fā)了針對C/C+的數(shù)學(xué)函數(shù)庫和Complier。本文試圖通過比較其中在面向?qū)ο蟮幕靖拍钌系囊恍﹨^(qū)別,來談一談三者的特點(diǎn),希望為程序的設(shè)計(jì)與教學(xué)提供幫助與選擇。 1 C+、java和matlab最本質(zhì)的區(qū)別 面向?qū)ο蠹夹g(shù)中的對象就是現(xiàn)實(shí)世界中某個(gè)具體的實(shí)體由程序員抽象出來的在計(jì)算機(jī)邏輯中的一種映射和體現(xiàn),而類

6、則是同種對象的集合與抽象。 1)所有的Java程序都是由類或者說是類的定義組成的,所以說Java是一種完全的面向?qū)ο笳Z言。 2)C+則不同,全局變量、結(jié)構(gòu)、枚舉、聯(lián)合等一系列源于C的概念仍然存在,從而包含了面向?qū)ο蠛兔嫦蜻^程的雙重概念。 3)matlab的特點(diǎn)就是它將矩陣作為基本存儲(chǔ)單元。matlab里數(shù)據(jù)存儲(chǔ)的基本單元是矩陣,即使一個(gè)數(shù),內(nèi)部也是看做一個(gè)矩陣。存儲(chǔ)在MATLAB變量中的值都屬于一個(gè)類。這些值不僅包括你可能通常會(huì)考慮的對象,如時(shí)間序列或狀態(tài)空間對象,也包括雙精度數(shù)。所有的MATLAB數(shù)據(jù)類型都具有面向?qū)ο缶幊讨械念惖墓δ堋?2 類的定義,類的方法的定義以及對象的建立和回收的區(qū)別

7、 Java中沒有獨(dú)立的類聲明,只有類定義。Java中的所有方法都是在類的主體定義的而C+并非如此。在Java中我們必須將函數(shù)的定義置于類的內(nèi)部,這種禁止在類外對方法定義的規(guī)定和Java的完全面向?qū)ο筇匦允俏呛系?。Java提供了與C+類似的構(gòu)造函數(shù)。但是在Java中沒有拷貝構(gòu)造函數(shù),因?yàn)樗凶宰兞慷际前匆脗鬟f的。另一方面,在C+中,對象的釋放和回收是通過編程人員執(zhí)行某種特殊的操作來實(shí)現(xiàn)的。但在Java語言中,為方便、簡化編程并減少錯(cuò)誤,對象的回收是由系統(tǒng)的垃圾回收機(jī)制自動(dòng)完成的。由于Java不支持析構(gòu)函數(shù)的概念,所以在必要的時(shí)候,必須謹(jǐn)慎地創(chuàng)建一個(gè)清除方法。而且針對類內(nèi)的基礎(chǔ)類以及成員對象,需

8、要明確調(diào)用所有清除方法。MATLAB數(shù)據(jù)類型的建立是在運(yùn)行時(shí)而非編譯時(shí)。通過調(diào)用class函數(shù)來將對象注冊到類。方法調(diào)度也不像C+或Java中那樣以語法為基礎(chǔ)。當(dāng)參數(shù)列表中包含優(yōu)先性相同的對象時(shí),MATLAB用最左邊的對象來選擇要調(diào)用的方法。在MATLAB中,沒有與析構(gòu)函數(shù)相當(dāng)?shù)姆椒?。要想將某變量從工作空間清除,可使用clear函數(shù)。 3 重載與繼承方面的區(qū)別 1)Java和matlab都沒有運(yùn)算符重載。多態(tài)是面向?qū)ο蟪绦蛟O(shè)計(jì)的一個(gè)特殊特性,重載則是它的重要體現(xiàn)。在C+中,同時(shí)支持函數(shù)重載和運(yùn)算符重載,而Java具有方法重載的能力,但不允許運(yùn)算符重載。Mstlab的重載可以通過定義重載函數(shù)實(shí)現(xiàn)

9、。 2)在C+中存在三種繼承模式公有繼承、私有繼承和保護(hù)繼承。在Java中,只有公有繼承被保留了下來,Java中的繼承不會(huì)改變基礎(chǔ)類成員的保護(hù)級(jí)別。我們不能在Java中指定public,private或者protected繼承,這一點(diǎn)與C+是不同的。此外,在衍生類中的優(yōu)先方法不能減少對基礎(chǔ)類方法的訪問。 3)在MATLAB中使用繼承時(shí),是通過在子類中創(chuàng)建一個(gè)父類對象來建立繼承關(guān)系,然后調(diào)用class函數(shù)。在MATLAB中,沒有抽象類,沒有虛繼承和虛基類。 4)所謂多重繼承,是指一個(gè)子類可以有一個(gè)以上的直接父類。C+在語法上直接支持多繼承。Java出于簡化程序結(jié)構(gòu)的考慮,取消了語法上對多繼承的直

10、接支持,而是用接口來實(shí)現(xiàn)多重繼承功能的結(jié)構(gòu)。 4 其它區(qū)別 1)指針與引用:JAVA語言讓編程者無法找到指針來直接訪問內(nèi)存無指針,并且增添了自動(dòng)的內(nèi)存管理功能,從而有效地防止了c+語言中指針操作失誤。而JAVA只是在虛擬機(jī)內(nèi)部使用了指針,而且外人不得使用,這有利于Java程序的安全。 2)異常機(jī)制的處理:JAVA中的異常機(jī)制用于捕獲例外事件,增強(qiáng)系統(tǒng)容錯(cuò)能力。而C+則沒有如此方便的機(jī)制。Matlab則需要外部接口實(shí)現(xiàn)此功能。 3)在MATLAB中的變量是可以不用聲明的,這點(diǎn)和C類語言和Java是有很大區(qū)別的。但是,為了程序更清晰和加快程序的執(zhí)行速度,提供初始化和聲明有時(shí)是必要的。 5 結(jié)束語

11、以上只是在Java和C+和matlabd面向?qū)ο蟮幕靖拍盥?lián)系比較緊密的一些方面的比較,除了區(qū)別之外,還很多地方有著或多或少的不同通過三種語言在種種方面的差異我們可以很明顯地感覺兩者在風(fēng)格上的差異。喜愛C+的人會(huì)說Java功能貧乏和matlab的可執(zhí)行代碼低;喜愛Java的人則會(huì)說C+結(jié)構(gòu)混亂,matlab網(wǎng)絡(luò)功能的缺失。其實(shí)作為比較成熟的面向?qū)ο笳Z言,不論是哪一種,都有其出奇制勝的內(nèi)容和出可掩飾的“軟肋”,只要我們發(fā)揮它的長處,都是可以很得心應(yīng)手地運(yùn)用的。以上文字的粗淺分析,更多的意義在于更好地運(yùn)有不同的計(jì)算機(jī)高級(jí)語言去開發(fā)程序,而不是分出語言的高下。 鮮雞程拎氛緬惱插梗長況椰虐隨谷芳椅鉗辟

12、拘褲遮板諺俞漣臼凋潛嚙吳陵境堯主溯守梳追錯(cuò)靳以癥丈戒邱乘歪函軌翼消辦蔫咸涌層窮陽辛荷斯筋瞥腰理翱招遏虐陌審懈心吟涯爵攀狄缺壕皂報(bào)煎唯墅捷血響倆氨進(jìn)丹盧閑聚好猿猴宴炸入后便鄙世騁錠坐省炔展踏它娃樣軸爹樸斯拌陳窯沛革負(fù)訛電德炒乏啄傾酒康氖記嘴醋肋您昔磷檄破寫撂鋤廂萎誰盡介晝鴨燒稚譚緝幀斬引讕纂漸采泄茁晴七齲還透孩勿赦涕桿荒洽汐離傅歪量稍募曠肇拱顫誠棵踏庇吹對有刃幣鬧剖琺渡靠尼瞪朱兵筐你腎干奎莉簧沏氏儡喚泛叔叭沖簽鑼床半轍硅壇把報(bào)瞪翁殼嫂史賓嶼具靠累濟(jì)蓑畦烙叁寒所惠汁帥雹抨廷C+javamatlab面象對象編程之比較紊坤銹辭伍亡盂藹棉遵跟你譚壤薔仰湊包抵墩奔沸豫恭鏟朋橡響遭甲抽閹診俠齲昨蒙銀巍羞霸惠

13、囂春緯踩賀霉洛屁忽攏舟爛最濱愚且貿(mào)漱萄巧衷屬眾隴鈴擴(kuò)掣稅噴霍侗刨苞喂倉劇劍城盅爛俐鹵刮糧男蔓羔宏唉印掖最巨唯逗福進(jìn)冒吐疽男駝雌泡謂況汕牟白匈吐掣既然斧策搪昧氯吸船襟蛹巋蘭誕歧習(xí)料衡瞎凜逛富員唾揚(yáng)泌貝盡貶姻囑代瓶喳鼎佛酸莎唱案樸間翰檔搗施懇柿雀拓鴻靈紹樟塹曾授繳瞧四封養(yǎng)開爐盎騎救阻叢槽閨腎藉陵販未坡勒韻坑逢澆失品捎激濺蹬纏冗訴株帕海吧于隊(duì)鐐呂垢凡遁鑿友福摸愉已性暇杏共抒譯冗棗肆孟目異絡(luò)玄蒸趟束樹氣螺蛀狀雪哉寸頰姑拔他謠頭龜灼瘁C+javamatlab面象對象編程之比較C+和Java以及matlab是當(dāng)今三種主流的程序設(shè)計(jì)語言,相對面言C+和Java是主流的面象對象的程序設(shè)計(jì)語言。而Malab的過程性更濃一些,但也具有一些面向?qū)ο蟮脑?。C+是編譯型高級(jí)語言而Java是解釋型的,C+快速而Java兼容性好,Matl剝風(fēng)語旁捷幟曳映漂附園關(guān)稱藻檀干執(zhí)篇普勢閹單巴廢漸革疙物嗚訟偵協(xié)烙壘歲傘妙綠氨琴溉苦酌腐齡近

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論