《高等學校教材·計算機科學與技術:Java面向對象程序設計(第2版)》的內容大體可分為三個部分。第1章~第7章為第一部分,著重介紹Java面向對象的基本知識點,主要有Java的基本環(huán)境、Java語言基礎、Java工程規(guī)范、面向對象基本概念、基本特征、概念深化、異常處理等,讀者通過這部分的學習可以用Java語言建立起面向對象思維的能力,其中第4章~第6章是本部分的重點;第8章~第16章為第二部分,著重介紹Java語言的應用,主要有Java常用類庫與工具、線程、集合類框架、AWT與Swing圖形用戶界面、輸入/輸出、網絡通信、JDBC,讀者通過這部分的學習可以了解Java工程應用的基礎知識,其中第8章~第10章以及第14章、第16章是本部分的重點;第17章~第20章為第三部分,著重介紹Java軟件體系結構設計,主要有UML、設計模式、軟件框架和分布式對象技術,讀者通過這部分可以掌握和了解進行軟件結構設計時需要用到的模型表達方式、設計思想、框架編程思維和分布式軟件設計的主要方法。
這三部分的內容,囊括了Java語言和Java軟件結構設計的主要知識點,豐富了Java面向對象程序設計的內涵,可由淺入深、循序漸進地帶領讀者進入Java面向對象程序設計的藝術殿堂。
突出軟件設計各要點間的關聯性。以UML表達設計,以設計模式蘊含設計思想,以軟件框架表達軟件設計的基礎,以分布式對象技術體現軟件系統(tǒng)的設計架構,這四個方面是進行軟件設計不可分割的有機組成要素。 軟件設計與代碼實現緊密結合。針對當前很多軟件教材普遍存在的軟件設計缺乏實現代碼支撐而編程語言缺乏設計指導這一問題,本書加強了它們之間的聯系并使二者相輔相成。用圖形表達抽象的概念。圖形具有信息容量大且清晰直觀的特點,用圖形表達抽象的軟件概念有助于引起讀者的興趣,提升他們理解的準確度和記憶的持久性。 對Java與C++兩種語言進行對比。雖然Java與C++都是面向對象的語言,但許多類似的概念在語言的實現中卻迥然不同。對這些不同進行對比有助于讀者深化對這兩種語言的理解,避免混淆。注重細節(jié)。本書特別強調語言和設計的細節(jié),這也是由計算機軟件實踐性很強這個特點決定的。
具備什么樣的知識與技能才算是具有面向對象程序設計的能力呢?顯然只掌握面向對象的語言是遠遠不夠的,至少還需要掌握UML、設計模式、軟件框架、分布式對象技術才行。如果將面向對象程序設計看成一個有機整體,那么語言是細胞,UML是血液,設計模式是神經,軟件框架是骨架,分布式對象技術是器官和組織。也就是說,知識的理解應該彼此滲透。正是基于這樣的理念,本書在第1版的基礎上擴充出了軟件設計理論的相關內容,同時也對Java語言學習內容進行了一些必要的調整,從而形成了如下三個特點:
。1) 軟件設計知識的彼此貫通: Java編程語言、UML、設計模式、軟件框架、分布式對象技術5個方面通常會以5本教材的形式出現,這樣很容易就割裂它們的內在聯系。沒有面向對象編程語言作為基礎,面向對象設計就沒有根基; 而只有編程語言沒有設計,則程序將會失去風景和藝術感染力。設計的知識基礎是UML,設計模式那深邃的思想再也找不到比UML更好的表達形式了,而將設計模式用得爐火純青之處正是框架和中間件,離了框架和中間件的支持,在業(yè)界應用廣泛的分布式設計與編程則寸步難行。因此將它們集成在一本書中講述,將會給讀者關于軟件設計的一個全景認識,因而本書適合作為大專院校的Java語言、UML、軟件體系結構設計等課程的教學用書。
。2) 軟件設計知識講解的深入淺出: 集“全景認識”于有限篇幅,對設計知識就不得不進行濃縮,因而不要把本書當成手冊來看待,如果進行深入的學習還需參考相關書籍,但這并不意味著本書在設計內涵的完整性和深刻性方面打了折扣。秉承第1版的一貫風格,本書第2版仍然采用圖的方式來展現設計的深刻內涵。
。3) Java語言面向對象設計學習的深入性: 語言具有規(guī)則學習和規(guī)則運用兩個層次,規(guī)則學習主要表現在本書的第1章~第16章,而規(guī)則運用則表現在第17章~第20章。現在多數Java程序設計教材都停留在規(guī)則學習階段,對運用鮮有提及。因而選用本書作為有限學時的Java語言教學時,可留給教師和學生進一步的應用發(fā)展空間,而選用本書講授軟件設計時,前16章的Java語言部分以及后4章的設計案例又可作為堅實的支撐材料——將設計與實際編程緊密結合是本書編撰始終堅持的一個重要原則。同時照顧到一些學校先學C++后學Java的教學安排,書中在許多關鍵之處將Java和C++進行了對比,以防止兩種語言差異性引起的混淆。
本書第2版得到多人的幫助才得以完成。長安大學安毅生老師負責了本書第8章~第14章的編撰工作,張少博老師指出了本書第1版中存在的一些不當和錯誤之處。另外,趙祥模老師、葛瑋老師以及清華大學出版社的編輯給予了一如既往的支持,提出了許多寶貴意見,在此一并表示感謝。
編者
2012年3月于西安
第1章 初次接觸Java
1.1 Java語言——網絡時代的編程語言
1.1.1 網絡時代編程問題
1.1.2 問題的解決方法
1.2 Java語言的特點
1.3 Java程序的編譯環(huán)境和執(zhí)行環(huán)境
1.4 第一個Java程序——Hello World
1.5 Java程序的分類
1.6 Java平臺
小結
習題
第2章 Java語言基礎
2.1 數據類型
2.1.1 標識符和保留字
2.1.2 數據類型概括
2.1.3 基本數據類型簡介
2.1.4 數據類型轉換
2.1.5 基本數據類型及其對應的包裝類
2.2 表達式
2.2.1 算術表達式
2.2.2 關系表達式
2.2.3 邏輯表達式
2.2.4 賦值表達式
2.2.5 條件表達式
2.2.6 運算符優(yōu)先級
2.3 控制語句
2.3.1 分支語句
2.3.2 循環(huán)語句
2.3.3 跳轉語句
2.4 數組
2.4.1 一維數組
2.4.2 二維數組
小結
習題
第3章 Java程序工程規(guī)范
3.1 為什么要有規(guī)范
3.2 Java程序編程規(guī)范
3.3 幫助文檔的自動生成
小結
習題
第4章 面向對象(上)
4.1 抽象的含義
4.2 類與對象
4.3 類的域(屬性)與方法(操作)
4.4 對象
4.4.1 對象的創(chuàng)建
4.4.2 對象作為參數的特點
4.4.3 對象數組
4.4.4 數組對象特點及常用方法
4.5 構造方法
4.5.1 構造方法的概念
4.5.2 構造方法的特征
4.5.3 構造方法賦值的注意事項
4.5.4 finalize方法與垃圾回收
4.6 類成員屬性和方法的非訪問修飾符
4.6.1 static
4.6.2 abstract
4.6.3 fina1
4.6.4 native修飾的本地方法
4.7 包
小結
習題
……
第5章 面向對象(中)
第6章 面向對象(下)
第7章 異常
第8章 Java常用類庫與工具
第9章 線程
第10章 集合類
第11章 Applet程序
第12章 AWT圖形用戶界面
第13章 Swing圖形用戶界面
第14章 I/O輸入/輸出
第15章 Hava網絡通信
第16章 JDBC
第17章 UML簡介
第18章 設計模式
第19章 軟件框架
第20章 軟件體系結構與分布式對象技術