?? 轉(zhuǎn):《學(xué)不會的java,消不了的憂愁》之四.txt
字號:
作者:NOVEMBER RAIN
email: haoy@dongyu.com.cn
日期:2001-5-9 17:34:09
《學(xué)不會的JAVA,消不了的憂愁》之四——獻給那些酷愛計算機編程的人們
發(fā)言者:jigenghua
時 間:2001/03/12 23:01:47 來 自:www.javaunion.org
--------------------------------------------------------------------------------
這一回,我不想談那么多的感概了,我用自己的話來說說java,請大家來做幾道判斷題,認(rèn)為對的,你可以不開聲,認(rèn)為錯的,可不要忘了指出來。所有這樣問題,面向像我一樣的菜鳥,大蝦也可以看看。
學(xué)習(xí)一和編程語言,不外乎兩種背景:其一,興趣愛好;其二,工作需要。在學(xué)校里,可能還有第三種背景——那就是必修課程。
在我看來,憑興趣愛好學(xué)的東西學(xué)得很快,印象也很深,但沒有很好地結(jié)合實踐應(yīng)用,自己也想不出什么真正有價值的課題去實現(xiàn)它,所以這種知識水平并不是很高。我見過很多這樣的朋友,他們對VFP、VC的道理懂得真不少,可一問到一些真正有用的東西,他們回答得總是那么不盡人意。我曾經(jīng)深愛著C,也會用它編一些簡單的小程序,不過,從來就沒有用它做過什么工程,所以,在外面應(yīng)聘的時候,我不敢說我精通C,雖然知道自己的C水平很不錯了。不過呢,話又說回來,一旦有了理論水平和基本功,真正遇到難題的時候,往往都能很快解決,所以憑興趣愛好掌握的東西用途也是挺大的。
相反,因為工作的需要,自己不得不去掌握的東西一旦自己搞懂了,印象會更深刻。由于所有的“知識”都是建立在以“用”的基礎(chǔ)上,掌握到了的東西就是活生生用得到的、看得到的東西,所以談不上什么學(xué)不致用的問題。這種知識處處以實踐為基礎(chǔ),一分錢一分貨,最能解決實際問題,這也就是用工單位為什么那么注重實際工作經(jīng)驗的真正原因:招到有經(jīng)驗的老手,新工作上手很快,工作質(zhì)量也很高!(我沒有什么學(xué)歷,中專生一個,但我早在95年的時候就開始用Fox真槍實刀地干,半工半讀,為工商所、商場、酒店、制造廠、甚至我的校圖書館免費開發(fā)了一個又一個的數(shù)據(jù)庫應(yīng)用軟件,這些軟件,在我們江西內(nèi)地,大多數(shù)至今還活得挺好的。這么多的軟件,為我98年四月份在深圳能找到一份別人看來復(fù)雜、而我看來一般般的數(shù)據(jù)庫網(wǎng)絡(luò)編程工作打下了了不起的基礎(chǔ)。來到這里不到半年,一家很大的電子廠,不知是通過什么渠道,連打三次電話給我,叫我過去幫他們搞編程,我想學(xué)java,不想再搞VFP了,所以沒有答應(yīng),雖然對方開的報酬比我現(xiàn)在要高一個檔次。)我的經(jīng)歷告訴我,學(xué)歷并不是很重要的,關(guān)鍵是真正的水平,你能帶著你親手制作出來的CPU芯片到聯(lián)想去應(yīng)聘,哪怕你從來沒有進過校門,柳傳志也會叫你一聲干爹。明白了能力的“妹”力以后,我不再刻意追求什么本科學(xué)歷、研究生學(xué)歷,我只想好好學(xué)點有用的東西,用能力向別人展現(xiàn)自己的風(fēng)采!(有點吃不到葡萄就不吃葡萄的心態(tài))
至于第三種學(xué)習(xí)知識的方法——為了修完課程而學(xué),通過這種方式來掌握知識,基本上沒有什么好談的了,一句話,沒有什么用啦!或許我講的太武斷太偏激。
我學(xué)JAVA,既不完全是憑興趣愛好,也不是因為工作壓得非學(xué)不可,只是基于學(xué)JAVA的一種潮流,和不久的將來的工作需要,錯過了學(xué)VC、VB的瘋狂時代,也錯過了學(xué)CGI、ASP的關(guān)鍵歲月,我不能再錯過JAVA,我輸不起!
正是因為以上的原因,我把JAVA建立在將來的應(yīng)用上,所以學(xué)得不是那么的累,人沒有壓力學(xué)東西往往很慢。一個面向?qū)ο蟮母拍睿戳艘槐橛忠槐椋坏幻鳌懊嫦驅(qū)ο蟆笔呛挝铮B對象是什么東東,都似懂非懂,還以為面向?qū)ο笫前涯樏嫦蛑鴮ο螅‵ace to object),就算這樣理解,面向著對象干什么?發(fā)神經(jīng)啊?很多很多的書,標(biāo)題寫得不錯——“什么叫面向?qū)ο蟆保只颉懊嫦驅(qū)ο蟮母拍睢保煽赐曛螅€是一頭霧水。
最令人惱火的是很多書對類(Class)的定義:具有相同特性的多個對象的一個實體。去他奶奶的,老子連對象還不太懂,就用對象來說明類的定義,還加上一個怪異的詞語——實體。這樣的定義能說明什么問題?也許是寫書的人太聰明了,以為大家的頭腦都是抽象的,不會想木頭、石頭、狼和兔子之類的具體東西。
他完全可以想到這個詞:模板,用模板代替實體,就成了類是具有相同特性的多個對象的一個模板,這樣呆板的解釋,當(dāng)然不能讓初學(xué)者對類這個重中之重的概念留下難于忘懷的印象。假如他能像我這樣解釋,請看下文:
傳說中上帝造人是用模子來造的,上帝造人用的模子就是類(Class),當(dāng)然模子也不是天生的,由上帝根據(jù)自己的想象制作,作好了模子以后,造人可就方便啦,幾乎不用動腦筋,泥巴往模子里一丟,一個人就出來了,出來了的這個人就有了眼情啦、鼻子啦、耳朵啦,等等,最重要的是,這個人會說話,會唱歌、跳舞......
以上這個例子中,類就是模子,專門用來制作一些有很多共同點的實物,用模子造東西的最大好處就是可以偷懶,一勞永逸,用類來開發(fā)軟件的妙處也正在于此。模子造出來(對“造出來”這三個字打上著重號,引起讀者的注意)的東西有一個響亮的名字:對象或?qū)嵗虼耍趈ava里面,我們講的對象或?qū)嵗际侵敢呀?jīng)用類制作好了的。用類制作對象這個動作,也有一個各位不太好懂的名字——類的實例化,或叫類的一個實現(xiàn),好聽嗎?你們可要記在心里。
不知大家是否注意到,我上面說過,上帝用類造出人這種對象具有很多很多的特性,像眼情有大、眉毛有多長、牙齒有幾顆、人長得是否靚仔等等叫做對象的屬性(Attribute),一個對象視它簡單與復(fù)雜,屬性可以沒有一個,也可以有多個。而人會說話、會打架、會談戀愛……這些涉及到動作的行為叫做對象的能力(Ability),但在JAVA里面叫做對象的方法(Method),假如你的思想被VC化,你把它暫時理解為函數(shù)也不是不可以的。
通常我們講的“面向?qū)ο缶幊獭边@種方法,或說這種思想,就是要求大家學(xué)習(xí)上帝造人這種方式、這種思想,把所有程序分成一個一個的功能塊,有些功能塊不僅你正在編寫的這個程序用得到,將來編寫的其它程序也可能用得到,正是你會這么想,把一些通用的功能塊抽出來、概括出來,用一個獨立的、能被其它類制造時調(diào)用的名字命名它。用這種思想去設(shè)計程序,叫什么面向?qū)ο缶幊蹋∣OP)。
這一貼,我講了學(xué)知識的三種背景,不同的背景學(xué)知識會有不同的方法,從面產(chǎn)生不同的效果。
我也介紹了類、對象、面向?qū)ο缶幊獭ο蟮膶傩浴ο蟮姆椒ㄟ@些基本的概念,大家懂了嗎?
下一貼,我將接著介紹類庫的概念,還有父類、子類、類與類之間的遺傳(繼承),并教大家怎樣快速用JDK這個工具
開發(fā)小程序。雖然有很多的可視化開發(fā)工具可以用來開發(fā)JAVA軟件,但不懂使用JDK工具的JAVA開發(fā)人員,跟只懂Linux的X Windows不懂它的shell操作一樣,屬于低能的操作員。
所有這些貼子,都是出自于個人愛好,連載出來,目的只有一個:為了別人,也為了自己把JAVA學(xué)好!
請看下貼《學(xué)不會的JAVA,消不了的憂愁》之五——獻給那些酷愛計算機編程的人們。
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -