最早的程序設(shè)計(jì)都是采用機(jī)器語(yǔ)言來(lái)編寫(xiě)的,直接使用二進(jìn)制碼來(lái)表示機(jī)器能夠識(shí)別和執(zhí)行的指令和數(shù)據(jù)。簡(jiǎn)單來(lái)說(shuō),就是直接編寫(xiě)0和1的序列來(lái)代表程序語(yǔ)言。例如:使用0000 代表 加載(LOAD),0001 代表 存儲(chǔ)(STORE)等。
10年積累的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有徽縣免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。機(jī)器語(yǔ)言由機(jī)器直接執(zhí)行,速度快,但一個(gè)很明顯的缺點(diǎn)就是:寫(xiě)起來(lái)實(shí)在是太困難了,一旦你發(fā)現(xiàn)自己寫(xiě)錯(cuò)了,改起來(lái)更蛋疼!這樣直接導(dǎo)致程序編寫(xiě)效率十分低下,編寫(xiě)程序花費(fèi)的時(shí)間往往是實(shí)際運(yùn)行時(shí)間的幾十倍或幾百倍。
有一個(gè)關(guān)于機(jī)器語(yǔ)言和比爾蓋茨的笑話,是說(shuō)比爾蓋茨拿著繡花針在一張光盤(pán)上戳,把Windows給戳出來(lái)了!但如果真的讓你去戳,不要說(shuō)Windows,連一個(gè)簡(jiǎn)單的“Hello world”都要讓人戳到眼睛冒煙!
由于機(jī)器語(yǔ)言實(shí)在是太難編寫(xiě)了,于是就發(fā)展出了匯編語(yǔ)言。匯編語(yǔ)言亦稱(chēng)符號(hào)語(yǔ)言,用助記符代替機(jī)器指令的操作碼,用地址符號(hào)(Symbol)或標(biāo)號(hào)(Label)代替指令或操作數(shù)的地址,。匯編語(yǔ)言由于是采用了助記符號(hào)來(lái)編寫(xiě)程序,比用機(jī)器語(yǔ)言的二進(jìn)制代碼編程要方便些,在一定程度上簡(jiǎn)化了編程過(guò)程。例如使用LOAD 來(lái)代替 0000,使用STORE來(lái)代替0001。
即使匯編語(yǔ)言相比機(jī)器語(yǔ)言提升了可讀性,但其本質(zhì)上還是一種面向機(jī)器的語(yǔ)言,編寫(xiě)同樣困難,也很容易出錯(cuò)。相信很多計(jì)算機(jī)畢業(yè)的學(xué)生至今都對(duì)學(xué)校的匯編課程中的練習(xí)程序心有余悸。
面向過(guò)程面向機(jī)器的語(yǔ)言通常情況下被認(rèn)為是一種“低級(jí)語(yǔ)言”,為了解決面向機(jī)器的語(yǔ)言存在的問(wèn)題,計(jì)算機(jī)科學(xué)的前輩們又創(chuàng)建了面向過(guò)程的語(yǔ)言。面向過(guò)程的語(yǔ)言被認(rèn)為是一種“高級(jí)語(yǔ)言”,相比面向機(jī)器的語(yǔ)言來(lái)說(shuō),面向過(guò)程的語(yǔ)言已經(jīng)不再關(guān)注機(jī)器本身的操作指令、存儲(chǔ)等方面,而是關(guān)注如何一步一步的解決具體的問(wèn)題,即:解決問(wèn)題的過(guò)程,這應(yīng)該也是面向過(guò)程說(shuō)法的來(lái)由。
相比面向機(jī)器的思想來(lái)說(shuō),面向過(guò)程是一次思想上的飛躍,將程序員從復(fù)雜的機(jī)器操作和運(yùn)行的細(xì)節(jié)中解放出來(lái),轉(zhuǎn)而關(guān)注具體需要解決的問(wèn)題;面向過(guò)程的語(yǔ)言也不再需要和具體的機(jī)器綁定,從而具備了移植性和通用性;面向過(guò)程的語(yǔ)言本身也更加容易編寫(xiě)和維護(hù)。這些因素疊加起來(lái),大大減輕了程序員的負(fù)擔(dān),提升了程序員的工作效率,從而促進(jìn)了軟件行業(yè)的快速發(fā)展。
典型的面向過(guò)程的語(yǔ)言有:COBOL、FORTRAN、BASIC、C語(yǔ)言等。
面向?qū)ο蟪绦蛟O(shè)計(jì)結(jié)構(gòu)化編程的風(fēng)靡在一定程度上緩解了軟件危機(jī),然而好景不長(zhǎng),隨著硬件的快速發(fā)展,業(yè)務(wù)需求越來(lái)越復(fù)雜,以及編程應(yīng)用領(lǐng)域越來(lái)越廣泛,第二次軟件危機(jī)很快就到來(lái)了。
第二次軟件危機(jī)的根本原因還是在于軟件生產(chǎn)力遠(yuǎn)遠(yuǎn)跟不上硬件和業(yè)務(wù)的發(fā)展,相比第一次軟件危機(jī)主要體現(xiàn)在“復(fù)雜性”,第二次軟件危機(jī)主要體現(xiàn)在“可擴(kuò)展性”、“可維護(hù)性”上面。傳統(tǒng)的面向過(guò)程(包括結(jié)構(gòu)化程序設(shè)計(jì))方法已經(jīng)越來(lái)越不能適應(yīng)快速多變的業(yè)務(wù)需求了,軟件領(lǐng)域迫切希望找到新的銀彈來(lái)解決軟件危機(jī),在這種背景下,面向?qū)ο蟮乃枷腴_(kāi)始流行起來(lái)。
面向?qū)ο蟮乃枷氩⒉皇窃诘诙诬浖C(jī)后才出現(xiàn)的,早在1967年的Simula語(yǔ)言中就開(kāi)始提出來(lái)了,但第二次軟件危機(jī)促進(jìn)了面向?qū)ο蟮陌l(fā)展。 面向?qū)ο笳嬲_(kāi)始流行是在1980s年代,主要得益于C++的功勞,后來(lái)的Java、C#把面向?qū)ο笸葡蛄诵碌母叻?。到現(xiàn)在為止,面向?qū)ο笠呀?jīng)成為了主流的開(kāi)發(fā)思想。
雖然面向?qū)ο箝_(kāi)始也被當(dāng)做解決軟件危機(jī)的銀彈,但事實(shí)證明,和軟件工程一樣,面向?qū)ο笠膊皇倾y彈,而只是一種新的軟件方法而已。
雖然面向?qū)ο蟛⒉皇墙鉀Q軟件危機(jī)的銀彈,但和面向過(guò)程相比,面向?qū)ο蟮乃枷敫淤N近人類(lèi)思維的特點(diǎn),更加脫離機(jī)器思維,是一次軟件設(shè)計(jì)思想上的飛躍。
面向?qū)ο蟮木幊趟枷耄?/p>
面向?qū)ο螅?Object )的編程在上世紀(jì)九十年代逐漸取代了面向過(guò)程的編程,到目前為止仍是主流的方案。程序結(jié)構(gòu)而言也更加成熟, Java , C ++, C #等大規(guī)模普及和運(yùn)用的語(yǔ)言均屬于面向?qū)ο笳Z(yǔ)言。
何謂面向?qū)ο蟮木幊趟枷??就是在處理?wèn)題的時(shí)候,將關(guān)注點(diǎn)放在事物本身,通過(guò)事物自身的屬性和行為動(dòng)作,來(lái)進(jìn)行邏輯問(wèn)題的解決。面向過(guò)程的實(shí)現(xiàn)需要制定每一步的辦法,而面向?qū)ο髣t是賦予物體一個(gè)“屬性”(或是賦予人物“性格”),預(yù)先設(shè)定好面臨不同問(wèn)題的解決辦法, N 從而達(dá)到目的。因此在認(rèn)識(shí)問(wèn)題和解決問(wèn)題上更符合人類(lèi)解決問(wèn)題的思維,對(duì)于程序員來(lái)說(shuō)更容易。
要了解面向?qū)ο蟮木幊趟枷?,首先要了解一些相關(guān)的概念:
1.對(duì)象( Object ),面向?qū)ο缶幊痰暮诵膯挝?,從概念上?lái)說(shuō)是對(duì)客觀
事物的具體描述,從系統(tǒng)角度來(lái)說(shuō)是一個(gè)基本單位,解決問(wèn)題也是從對(duì)象出發(fā)。
2.類(lèi)(Clas8),是對(duì)具有相同屬性和相同動(dòng)作的一系列對(duì)象的集合,例如多邊形就是一個(gè)類(lèi)( class )。類(lèi)為這些對(duì)象提供了具體的描述,類(lèi)的關(guān)鍵描述主要有屬性和動(dòng)作兩個(gè)內(nèi)容。屬性用來(lái)描述對(duì)象,動(dòng)作用來(lái)操作對(duì)象。在面向?qū)ο蟮木幊讨校?lèi)是對(duì)對(duì)象的抽象描述,對(duì)象則是對(duì)類(lèi)的一個(gè)具體實(shí)現(xiàn)。
3.抽象( Abstract ),是面向?qū)ο缶幊痰囊粋€(gè)重要思想,也是面向?qū)ο缶幊痰囊粋€(gè)基本原則。所闡抽象就是對(duì)具體事物特征的一種提取,也就是說(shuō),一類(lèi)具有相同或相似屬性的對(duì)象,將這些相似或相同的內(nèi)容以特征的形式提取出來(lái)作為抽象化的表述。
4.封裝,對(duì)象有一定的屬性,能夠執(zhí)行一定的動(dòng)作。如何讓這個(gè)對(duì)象更加具體化整體化,通過(guò)封裝將屬性和動(dòng)作包裝在一起。在實(shí)例化對(duì)象的同時(shí),屬性和動(dòng)作也一并跟著得到具體化。這樣的對(duì)象更便于利用,不用知道類(lèi)內(nèi)邵結(jié)溝的情況可以直接使用對(duì)象的國(guó)性或者動(dòng)作。將屬性駄于個(gè)對(duì)象,便得對(duì)線開(kāi)有目已的打?yàn)槿f(wàn)式,塑像個(gè)現(xiàn)實(shí)中的物體,對(duì)于初學(xué)者也更好理解。
較之面向過(guò)程,面向?qū)ο蟮木幊谈臃蠈?shí)際懈決問(wèn)題的思維,同題解決的表述更加復(fù)雜,但解決方法更加靈活,具有較強(qiáng)的可擴(kuò)股性。面向?qū)ο蟮木幊贪l(fā)較為成熟,使用也較為普遍,但是缺陷一一樣不容忽視。面向?qū)ο蟮木幊绦鑻氤绦騿T有良好的系統(tǒng)化想想,香則對(duì)于對(duì)象的
注:不完全
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧