物件導向只是處理問題、看待問題的一種方法
這套方法本身就是個抽像的觀念,比較像是一門藝術
學物件導向時,不要把它看成像是數學、物理之類有既定事實的學問
它比較像是學一門語文,慢慢習慣它,並接受它的矛盾之處
它只分比較好的物件導向跟比較差的物件導向,
沒有所謂的「對的物件導向」「不對的物件導向」
所以不要問為什麼要抽像化的那麼仔細,也不要問為什麼要做這件抽像化
只因為爽啊,換個方式抽像化也可以啊
不要把物件導向看成是一門專門的學問,你只是在利用它罷了
就像你只是在利用中文與其他人做溝通
而透過溝通,從小就漸漸地把中文學好
要怎麼像學中文一樣把物件導像的觀念學起來呢?
版友有說要看專門講物件導向的書
我尊重版友的意見,但那是等變成高手以後的事
最直接的方法就是,先把Java學會,再慢慢研究Java的封裝、繼承、多型
有緣的話就會了
我這麼說會產生三個問題:
1. 為什麼不先看專門講物件導向的書?
2. 為什麼是學Java?而不是C++或其他更物件導向的語言
3. 為什麼有緣就會了?沒緣是不是就不會了?
1. 為什麼不先看專門講物件導向的書?
因為太浪費時間了啊,看了又怎樣,看了還是不會寫程式啊
不會寫程式怎麼實現物件導向?
應該先學會物件導向的程式語言,再學物件導向的觀念才對
不懂物件導向也不會寫程式的人,應該要先學著寫程式,再學寫出物向導向的程式
不管從那端開始學都會覺得力不從心,這是一定的,這會讓人想放棄
初學者如果先學物件導向,學一半後放棄,這跟沒學一樣,什麼都不能做
初學者如果先學程式,學一半後放棄,致少還會寫一點點程式,解解小問題
初學者不要還不會物件導向的程式語言就先看物件導向的書
你怎麼知道你不會放棄呢?
2. 為什麼是學Java?而不是C++或其他更物件導向的語言
因為CP值高啊 投資報酬率高啊
上104看資訊類職缺的需求 Java / C++ 就超過一半,其他十數種語言佔另一半
這表示會Java/C++好找工作多了
這也表示這個社會用Java/C++來解決問題,比用其他程式語言來多的多
反過來說,用Java/C++可以解決大部份用程式方面的問題
那為什麼不先學C++? C++也是物件導向的語言
因為C++太龐大、太複雜了,容物讓初學者迷失方向
3. 為什麼有緣就會了?沒緣是不是就不會了?
全世界的政要,有多少人懂物件導向程式語言?
全世界的工程師,有多少人懂物件導向
全世界的程式設計師,有多少人懂物件導向
物件導向不是萬靈丹,會物件導向的人不會比較有出息
你會打狗棒法還不就是一個要飯的
你會物件導向還不就是一個在寫程式的
最後給原發文者
你想學物件導向的話,就不要只是寫寫小程式架架網站
凡人想學英文還是去英國學比較快啦
找份Java的兼職工作,一年後必有所成
※ 引述《andrew43 (Myrmarachne)》之銘言:
: 各位先進早安。
: 小弟從小到大學習接觸的全都是面向導向語言。最
: 常用的是 PHP 與 Matlab/GNU Octave。換言之,
: 我從來沒有撰寫「物件」這東西的經驗。
: 最近買了二三本 JAVA 的書來學習,發現書中很多
: 例子使我跟不上作者的腳步。有的例子是「幹嘛抽
: 象化得這麼仔細?」,有的是「為什麼要做這件抽
: 象化?」。追根究底,我對於「物件導向」的思考
: 方式應該是零分吧。
: 我也試著把物件導向的優點與過去撰寫面向導向語
: 言的經驗結合在一起,例如在 PHP 中我了解使用
: Function 以達到多次重覆使用相同運作的過程與
: 優點,但單單把 Function 抽象化成物件,似乎並
: 不能完全掌握到物件導向語言的優點啊。再加上,
: 物件裡又有成員與方法的概念,這已經超過我過去
: 經驗所能理解的範圍了。更不用談什麼繼承、多型
: 的概念了。
: 這種感覺就好像打籃球幾十年,卻遇到一個好教練
: 要你重練運球一樣。
: 在版上看了許多先進的文章,了解到小弟在「抽象
: 化」的能力有所不足。小弟並非本科生,使用程式
: 語言的需求也僅止於一些手算到斷掉也算不完的科
: 學運算及閒閒沒事做自己架架網站。是不是因為這
: 些需求算是小 case 所以比較不容易使我了解到物
: 件導向的優勢?但小弟又覺得,「抽象化」對於思
: 考應該是一種非常有益的訓練,所以我仍想學習物
: 件導向語言。
: 說了很多蠢問題和廢話,小弟真心地想聽聽先進們
: 的分享,或是經驗談也好,以點破我完全搞不懂物
: 件導向的思考方式之盲點。拜謝。