java面向过程编程怎么写_从面向过程到面向对象,我的编程之路
也許現(xiàn)在新一代的程序員一開始涉足的就是c++,C#,Java這類面向?qū)ο蟮恼Z(yǔ)言,如果這樣,這篇文章可能得不到他們的認(rèn)同。 這里,我只想寫寫我從面向過程到面向?qū)ο箝_發(fā)成長(zhǎng)中的一些感想而已。
我最初學(xué)習(xí)的語(yǔ)言是basic,但是入門太早,早的都沒有電腦可以給我用,所以對(duì)于basic其實(shí)沒有多少感覺,只是覺得很簡(jiǎn)單。等后來用的語(yǔ)言多了,怎么都覺得basic,尤其是vb,實(shí)在是個(gè)小孩玩的玩具,根本無法發(fā)揮編程的效力。因此我在此就跳過basic語(yǔ)言了。
剛?cè)氪髮W(xué),我學(xué)的是pascal語(yǔ)言。它主要是一門教學(xué)用語(yǔ)言,可以說是高級(jí)語(yǔ)言入門的典范。我至今仍然很感謝這門語(yǔ)言對(duì)我的指導(dǎo)作用。雖然這門語(yǔ)言在語(yǔ)句表達(dá)上有些繁瑣(相對(duì)c語(yǔ)言而言,但是對(duì)于初學(xué)者而言,以簡(jiǎn)單單詞作為語(yǔ)法單元卻是一種好處),但它在語(yǔ)言規(guī)范上非常嚴(yán)謹(jǐn),不容許存在絲毫的模棱兩可。這在C語(yǔ)言里面是做不到的。我在這門語(yǔ)言里面學(xué)習(xí)了數(shù)據(jù)結(jié)構(gòu),圖形學(xué)和簡(jiǎn)單的窗口編程,并且編寫了大量小型的課程設(shè)計(jì)程序(那個(gè)時(shí)候管自己的代碼叫軟件,現(xiàn)在想想真是汗顏),初步體驗(yàn)了面向過程編程思想。那個(gè)時(shí)候我也自學(xué)了c語(yǔ)言,覺得它的語(yǔ)句太難記憶,一直啃不下來,因此主要還是用pascal寫程序。后來到大四臨畢業(yè),就開始轉(zhuǎn)向到object pascal 和delphi編程,但是由于時(shí)間很短暫,雖然使用了對(duì)象,但是仍然不得OO的要領(lǐng),學(xué)的像個(gè)傻子似的。
此外在大四的時(shí)候,我也嘗試著去學(xué)VC,用的是那本著名的《VC++ 從入門到精通》,有一塊半磚頭那么厚。 我啃了很久都啃不下來, 感覺vc和我所學(xué)到的c++完全不是一回事。也沒人告訴我vc里面哪些奇怪的類型到底是怎么回事。后來的放棄其實(shí)不是我的錯(cuò),而是vc逼的。現(xiàn)在回想起來vc從一個(gè)學(xué)習(xí)者的角度而言,實(shí)在太不友好,當(dāng)然我們國(guó)內(nèi)的計(jì)算機(jī)教育也實(shí)在和國(guó)外的差距太大,連講操作系統(tǒng)課的老師自己都不知道真正的操作系統(tǒng)里面是什么一個(gè)樣子。能找到的語(yǔ)言方面的書,最多的就是譚皓強(qiáng)的一套。我相對(duì)我的同學(xué)已經(jīng)很不錯(cuò),畢業(yè)的時(shí)候已經(jīng)有近5、6千行代碼的經(jīng)驗(yàn)了,大多數(shù)學(xué)計(jì)算機(jī)的寫的代碼加起來的不過幾百行。也許現(xiàn)在看起來很可笑,但是當(dāng)時(shí)的情況的確如此。
真正讓我接觸面向?qū)ο蟮氖荍ava語(yǔ)言。 大四最后一個(gè)課程設(shè)計(jì)要求java做,因此對(duì)java有了真切的感覺。java用下來雖然自己不會(huì)寫對(duì)象,但是和對(duì)象相處了一段時(shí)間之后,至少知道應(yīng)該怎么去用對(duì)象了。由于java那個(gè)時(shí)候已經(jīng)有很豐富的庫(kù)函數(shù)可以使用,讓我這個(gè)小毛孩覺得這個(gè)語(yǔ)言太可愛了。 它比c和c++的語(yǔ)法友善和簡(jiǎn)單很多,沒有多少晦澀的東西,又可以畫出很漂亮的界面,實(shí)在太吸引人了。唯一的缺點(diǎn)就是太慢了, 用jbuilder看一下界面就把我p3 500M的機(jī)器拖死過去了。當(dāng)然那個(gè)時(shí)候的java還是很簡(jiǎn)單的,到了后來j2ee ejb 以及在mobile上的應(yīng)用使得java變得像一只極其龐大的恐龍,讓我再也沒興趣去理會(huì)它了。幾次還想重新把它拾起,但是一問當(dāng)時(shí)跑jbuilder的機(jī)器要什么配置的時(shí)候(記得那個(gè)時(shí)候就要512以上內(nèi)存了),我就退縮了--沒錢買這么好的機(jī)器。
記得大四的時(shí)候剛剛微軟推出了dotnet,還和國(guó)內(nèi)大學(xué)合作舉辦培訓(xùn)推廣。我也爭(zhēng)取到了學(xué)校團(tuán)隊(duì)的資格去上海微軟參加了培訓(xùn)。然后就是一段時(shí)間用dotnet開發(fā)作品去比賽。 反正那個(gè)時(shí)候看dotnet覺得是非常惡心和丑陋的東西。為什么這么說? 其一,語(yǔ)法和內(nèi)容幾乎和java沒任何差別,簡(jiǎn)直就是一個(gè)盜版貨;其二、那個(gè)時(shí)候msdn里面查函數(shù),30%的函數(shù)解釋寫著:目前該條目還沒有內(nèi)容,我們只能自己猜某些函數(shù)可能是怎么怎么用的;其三,裝了dotnet的機(jī)器都不長(zhǎng)命,沒一臺(tái)能跑7天不死的。 至今我都沒有再碰過dotnet,聽說現(xiàn)在這個(gè)東西還在玩程序員,慶幸當(dāng)年沒有入這個(gè)行,不如慘死了。
我的本科畢業(yè)設(shè)計(jì)要求在Linux平臺(tái)上做的,于是開始了我的C語(yǔ)言生涯。至今4年多了,我仍然主要用C語(yǔ)言在寫代碼。C語(yǔ)言教會(huì)了我很多,特別是對(duì)于系統(tǒng)、硬件,程序模型這些概念。我很感激它。現(xiàn)在還有很多人經(jīng)常問我這些概念,他們很奇怪為什么我對(duì)進(jìn)程,線程,信號(hào),中斷這些概念這么清楚。這些其實(shí)都來自C語(yǔ)言,C語(yǔ)言是一門系統(tǒng)語(yǔ)言,它很好的囊括了目前所有與操作系統(tǒng)相關(guān)的概念,因此無論今后用什么樣子的新的高級(jí)語(yǔ)言,系統(tǒng)api必將仍然用C語(yǔ)言來給出--除非計(jì)算機(jī)體系結(jié)構(gòu)出現(xiàn)顛覆性的革命。
至于c++語(yǔ)言,我不是不愿意用,而是我的工作和程序性能很相關(guān),C++語(yǔ)言的某些機(jī)制的效率很底下,實(shí)在不合適用在這樣的場(chǎng)合。 其次C++對(duì)于進(jìn)程線程和信號(hào)這類的概念的表達(dá)能力一直不夠盡如人意。所以我覺得不合適用以系統(tǒng)編程。
但是不是說離開了C++,C語(yǔ)言就缺少了面向?qū)ο蠊δ堋F鋵?shí)C成熟的編程風(fēng)格早已涵蓋了面向?qū)ο蟮乃枷搿S腥苏fC++是C的超集,這是事實(shí)。然而從另一個(gè)角度而言,C孕函了C++。C++表達(dá)的東西,C完全可以表達(dá)。這個(gè)觀點(diǎn)我無法展開去表述,但是一個(gè)簡(jiǎn)單的例子就可以簡(jiǎn)單的說明一些問題,在Linux內(nèi)核的代碼中,以及socket協(xié)議棧代碼中,文件系統(tǒng)中, 各種對(duì)象概念,文件對(duì)象,套接字對(duì)象都以struct結(jié)合函數(shù)的方法來表達(dá)。我雖然目前還在用c寫程序,但是我寫的程序越來越趨向?qū)ο蠡;仡櫸业木幊虒W(xué)習(xí)和實(shí)踐經(jīng)歷,我經(jīng)歷了用面向過程的語(yǔ)言寫面向過程的程序,用面向?qū)ο蟮恼Z(yǔ)言寫面向過程的程序,用面向過程的語(yǔ)言寫面向?qū)ο蟮某绦?#xff0c; 很快我就可能會(huì)轉(zhuǎn)到用面向?qū)ο蟮恼Z(yǔ)言去寫面向?qū)ο蟮某绦蛄恕?呵呵。
總結(jié)
以上是生活随笔為你收集整理的java面向过程编程怎么写_从面向过程到面向对象,我的编程之路的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL Server 游标
- 下一篇: 每日一题(50)—— 各类型与零值的比较