Java 是面向物件開發工具,使用 Java 開發應用必須懂 OOP 概念。學完語法後應建立 OOP 觀念。
理解 class/object,認識 class、interface、abstract class,掌握繼承性、封裝性(public/protected/private)、多型性。熟悉 UML,閱讀簡易資料,基本掌握類別圖、狀態圖、循序圖即可。
OOP 成功範例為常見 23 種設計模式。需閱讀並體會設計模式 UML 圖與示例代碼。推薦《Java 與模式》一書,也可訪問 jdon.com。不必完全讀懂模式,只需讀懂每個模式的 UML 與代碼。
透過演練體會 OOP 好處——對擴展開放、對修改關閉。同時學會在 Java 中用 OOP 概念設計。
我初期一直用面向過程思想寫 Java,對 class/interface/abstract class 及存取修飾符不理解,直到讀 GoF 設計模式才懂 OOP 優點。但 GoF 太晦澀,首讀僅建立 OOP 概念,未懂設計模式。《Java 與模式》較易讀但廢話較多。
面試時問「常用哪些類、在哪個包」,鮮少人答好,甚至做 2 年 Java 也答不出。他們依賴工具寫代碼,能跑但寫不出優秀程式。
Java 程式設計師必須掌握 java.lang 與 java.util 兩個包。java.lang 提供編程基本類,天天用卻少人總結(如 String vs StringBuffer 差異、Vector 與 HashMap 繼承關係)。
認真閱讀 Java API 以下內容:
java.lang:String, StringBuffer, Number, Double, Float, Byte, Short, Integer, Long, Character, Boolean, Process, Runtime, System, Object, Cloneable, Class, ClassLoader, Thread, ThreadGroup, Runnable, Package 等。
java.util:Collection, List, Set, ArrayList, LinkedList, HashSet, TreeSet, Iterator, Map, SortedMap, HashMap, TreeMap, Comparator, Arrays, Enumeration, Vector, Stack, Dictionary, Hashtable, Properties, StringTokenizer, BitSet, Date, Calendar, Locale, Random, Observer, Observable 等。
主要理清繼承關係與主要功能。
透過閱讀代碼、練習編程學習應用。大部分為常用類,只是說不清。最好將各方法練習一次。對 Collections 框架類,理清類與介面關係。舉 Observer/Observable 範例(摘自《The Complete Reference Java 2》),Java 實現了觀察者模式支援……