講古時間。
我第一個學習的語言就是PHP。
可能很幸運吧,因為PHP算是非常簡單的語言了。我開始學習時還沒國中呢,什麼也不懂,真的只會寫而已。挫折很多,摔過滑鼠砸過鍵盤,對著螢幕生過悶氣,但我也沒有從此失去對程式語言的興趣。反倒是現在,什麼都不好好學,堅持不了多久,真不知道小時候那種強烈的學習欲要如何找回。暫且不談台灣失敗的教育搞壞小孩子學習的胃口,今天先來談談轉換跑道的心得。
程式的基礎其實大同小異。
變數:無法想像沒有變數的程式呀~
函數:沒有的話程式啥都做不了。。。
運算子:各家不同;黏接用的運算子(專有名詞不記得了囧),PHP是"."(我甚至還記得吳弘凱先生在書中說千萬不要誤以為它是胡椒粉XD)、JAVA是"+"
條件處理:if I have money money, 我要接偶回家。。。else if 錢不足,我就跟我妹合資。。。else看看照片過過乾癮就好TAT
迴圈:我練這個練很熟,大量收圖時用的(汗) 好孩紙不可以學
for($a=1; $a<100; $a++){
echo "<img src='http://xxx.com/yyy/ccc/image".$a.".jpg />";
}
然後,你懂的~~XD
陣列:避免手腕肌腱炎的最好方法。跟迴圈搭配,威力無窮(當然威力最強的還是無限迴圈XD)
我學習PHP時看的書起碼三四本,厚厚的可以砸人的那種,都有介紹物件導向,但後面的程式範例就沒有人用它了。
而小時候我真的很害怕物件導向,因為我看不懂:建構子?那啥?能吃嗎?要幹嘛?方法?成員?頭昏的亂七八糟!
有個原因可能是沒有什麼"大型"的"實質"範例(至少在小時候的我找的到的範圍內),加上我不用它也沒差,還不是嘩啦嘩啦地寫出可用的程式,所以我也懶得去弄明白了。
PHP6出來了,但我看過的免費空間幾乎都不跟它,都只支持5。PHP也想往物件導向靠去,但顯然非常不受歡迎。後來PHP官網又回頭5.4.4,5.4.5這樣的一直修改下去。
就算是市面上的PHP6教學書,翻了幾個實作範例,連物件導向的半個影子也沒見著,還是只停留在撥出一章介紹,然後就沒有然後了。
JAVA是個純物件導向的語言,所有的東西都要放在類別內。
物件導向,OOP,不弄個完全明白都不行了。
封裝、繼承、成員、欄位、方法、多型,一次次的回頭重看、重新尋找定義,終於學的有點眉目了。
PHP轉換跑道後遺症?!
那麼,PHP的後遺症到底是什麼呢?
答案:一點都不物件導向的物件導向程式,偽物件導向。
這時候,沒有人捧場也要自問自答了!
「BD、BD,什麼是偽物件導向?」
「這個嘛......容吾緩緩道來......如此如此,這般這般......」(被踹飛)
咳咳,不鬧了~~
我最近發現我寫JAVA時,就把幾乎可以說是所有方法搞成了static狀態。
也就是不需要建立物件,就能使用這個方法。
不管需要什麼功能,我只要把東東都寫好,放在一個方法內,要的時候再找出來用。
發現了沒?我的做法就是把靜態方法(static method)當成了PHP裡面的"函數"!
就這樣而已!JAVA真的給我這樣用!
我的程式跟物件導向沒半點關係,嚴格說起來,只是把程式碼放在物件導向的類別內,而金玉其外敗絮其中(?),完全沒發揮到物件導向的威力:繼承、覆寫、彈性等等!
我也發現我寫出的一個完整程式,包括GUI介面以及查詢功能,裡面竟然都沒用到extend繼承、implements實作(監聽器除外的話)......
這應該不是好事吧......
還好我及時發現我的轉換跑道後遺症,也漸漸看出繼承與實作的彈性了。
現在我的主類別終於繼承了JFrame類別,好像該放個鞭炮來慶祝一下?(喂)
沒有留言:
張貼留言