本書適合作為學習Java語言及編寫Java應用程序的實用型教科書或教學參考書,書中主要闡述了Java語言的關鍵字、語句、語法規則、類庫等的使用方法,其內容包括Java語言開發工具的介紹、面向對象編程、Java基礎語句、Java類、Java類的繼承與多態、Java接口、Java包、Java異常、Java基礎類庫的應用,以及通過應用型案例掌握Java語言的輸入和輸出操作、圖形用戶界面操作、Applet小程序的編寫、圖形繪制操作、多線程處理、圖像動畫制作、網絡編程、數據庫操作等相關類庫的使用。 本書可作為大學、大專等理工科院校與計算機相關專業的本科或專科生使用的教材,也可作為學習Java語言的初、中級讀者的參考用書。
《Java程序設計案例教程》由基礎原理篇和案例應用篇組成,基礎原理篇涵蓋了Java語言編程基礎知識、語法規則、面向對象編程理念等,通過學習基礎原理篇可實現基本具備Java編程的能力;案例應用篇中的應用實例基于J2SE平臺,解析J2SE中Java類庫的操作機制,通過實例掌握Java類庫的應用,所有實例具備極強的應用參考價值,為使用Java語言開發項目奠定堅實基礎。本書配有教學課件(PPT),下載地址為清華大學出版社網站本書頁面。
本書的作者們都是多年從事Java語言教學和使用Java開發項目的教育工作者和軟件工程師,對Java有著深入的理解,了解學生在學習Java語言時遇到的難點并知道如何使學生能夠更快、更準確地掌握和使用Java語言,在編寫過程中,能使書的內容盡量通俗、易懂,使其符合循序漸進、由淺入深的學習規則,幫助讀者規范、系統地學習Java語言,為后續深入學習Java語言奠定扎實的基礎。
由于筆者多年從事Java語言的教學工作,有些學習體會在此愿與讀者交流,僅供讀者學習參考。計算機語言是人與計算機交流時使用的語言,更確切地說是人命令計算機做某些事情的語言。計算機語言與人類交流使用的自然語言功能是一樣的,也有單詞(被稱為關鍵字)、詞組(被稱為類庫或函數庫)、語法規則等。但是計算機語言的單詞是有限的,因為計算機CPU中的指令譯碼器只能理解很少的單詞,而語法規則也是規定好的,只可以按照語法規則來編寫一些語句,否則計算機會不識別。掌握計算機語言的關鍵字和語法規則就可以編寫計算機識別的可執行語句,而計算機程序就是一些語句遵循語法規則的邏輯組合,它可以讓計算機完成特定的功能。顧名思義,計算機好像只能實現計算功能,但它為什么卻能用在各行各業?因為幾乎所有的事物及事物的改變都可以用“數據”來描述,例如最熟悉的阿拉伯數字、ASCII碼(描述文字)、PCM碼(描述視頻、音頻信息)、表格、圖等“廣義數據”,處理這些“數據”正是計算機的專長。因此,編寫計算機程序首先需要通過“數據”和對數據的操作來建立一些模型(稱為數學模型),然后計算機執行程序則是針對數據的操作來實現要達到的目的。目前的面向對象編程的理念就是幫助實現或建立這樣的模型,它可以使編寫計算機程序變得簡單。掌握面向對象編程思想是編寫應用程序的基礎,而Java語言就是適用于面向對象編程的語言。另外,一種計算機語言除了有關鍵字和規定的語法規則外,還提供了大量的類庫或函數庫,這些類庫或函數庫則是針對各種類型的“數據”實施處理的,在編寫應用程序時,幾乎所有需要處理的數據類型都可以在類庫或函數庫中找到處理方法,類庫或函數庫可以說包羅萬象。總之學習計算機語言在理解了其使用的編程思想后,剩下的就是學習關鍵字、語法規則和類庫或函數庫的使用了。
本書分為兩部分: 第一部分包含6章,主要是講解Java語言的關鍵字、由關鍵字組成的表達式、程序流控制、類定義、接口定義、對象的使用、異常的處理等語句以及Java語言的語法規則; 第二部分包含9章,主要介紹關于Java基礎類庫JFC的應用,在JFC中每一個類庫都是針對一類數據進行的操作,類庫提供了許多數據操作方法,每一類操作都制定了操作機制,了解操作機制是更好地使用類庫的前提。Sun公司提供的J2SDK中類庫使用說明文檔是最直接的使用類庫的學習資料,本書則是通過案例理解類庫的操作機制和使用方法,案例涉及的內容有計算機輸入和輸出操作、圖形用戶界面操作、Applet小程序的編寫、圖形繪制操作、多線程處理、圖像動畫制作、網絡編程、數據庫操作等,為讀者深入學習各個應用領域中Sun公司提供的Java API奠定一些基礎。
書中所有案例都是通過編譯可運行的Java應用程序,并且實現了主要功能,讀者稍加修改(添加一些輔助功能)就可以應用到實際項目中。出版社網站上會提供這些案例的源代碼和編譯后可執行類代碼,方便讀者學習和使用。
本書由北京師范大學信息科學與技術學院孫一林副研究員主編,參加編寫與進行案例程序調試的還有中國農業大學信息與電氣工程學院彭波教授、北京師范大學教育技術學院張慶利高級工程師、北京聯合大學師范學院電子信息系曾文琪老師,以及胡治國、崔永普、張偉娜、王平等研究生,在此表示感謝。
由于水平有限,書中難免有疏漏之處,敬請讀者批評指正。如果讀者有問題需要與作者討論,可發送電子郵件到: yilins@bnu.edu.cn。
作者2016年1月
孫一林,北京師范大學信息科學與技術學院副研究員,主講“微機系統與接口技術”、“嵌入式系統”、“Java程序設計”等課程,主編《微型機系統與接口技術》(北京高等教育精品教材建設項目)、《Java程序設計》、《匯編程序設計》等教材。長期從事微機接口應用、嵌入式系統等硬件及底層驅動、相關軟件的設計與研發工作,曾獲北京市科學技術進步獎。
第一部分基礎原理篇
第1章Java程序設計基礎
1.1Java程序與運行
1.1.1Java語言的特征
1.1.2Java虛擬機
1.1.3Java字節代碼
1.1.4Java編譯單元
1.2Java程序的開發
1.2.1Java語言程序開發平臺
1.2.2Java程序基礎開發運行平臺——J2SDK
1.2.3在Windows操作系統中搭建Java程序的開發和運行環境
1.2.4Java程序的編譯和運行
1.3Java語言的標識符和關鍵字
1.3.1Java注釋語句
1.3.2Java標識符
1.3.3Java關鍵字
1.4Java基本數據類型
1.4.1數據值的表示法
1.4.2變量
1.4.3變量的數據類型轉換
1.4.4常量
1.5Java運算符和表達式
1.5.1Java運算符
1.5.2Java表達式
1.5.3表達式中運算符的使用規則
1.6Java程序流控制語句
1.6.1分支結構語句
1.6.2循環結構語句
1.6.3輔助流控制語句
1.6.4流控制語句應用示例
1.7小結
1.8習題
第2章面向對象編程
2.1面向對象程序設計
2.1.1面向對象的程序設計方法
2.1.2Java面向對象程序設計
2.2Java類
2.2.1Java類的定義
2.2.2方法的定義
2.2.3Java修飾符及其權限
2.3Java對象
2.3.1對象的創建
2.3.2構造方法的使用
2.3.3對象的使用
2.3.4對象的清除
2.3.5Java類和對象的關系
2.4數組對象
2.4.1一維數組的聲明和創建
2.4.2多維數組的聲明和創建
2.4.3數組的應用
2.5小結
2.6習題
第3章Java類的繼承與多態
3.1Java類的繼承
3.1.1概念和語法
3.1.2Java類繼承關系的測試
3.1.3隱藏、覆蓋和重載
3.1.4構造方法的重載
3.2abstract和final修飾符
3.2.1abstract修飾符
3.2.2final修飾符
3.3this和super變量
3.3.1this變量
3.3.2super變量
3.4Java的多態性
3.4.1多態的概念
3.4.2多態的應用
3.4.3構造方法與多態
3.5小結
3.6習題
第4章Java接口和Java包
4.1Java接口
4.1.1接口的定義
4.1.2接口的實現
4.1.3接口的繼承
4.1.4Java類同時繼承父類并實現接口
4.1.5接口與Java抽象類
4.1.6接口的應用
4.2Java包
4.2.1package語句
4.2.2Java包與路徑
4.2.3import語句
4.2.4直接引用Java包中的類和接口
4.2.5Java包的應用
4.3小結
4.4習題
第5章Java異常處理
5.1Java異常處理機制
5.1.1異常的類型
5.1.2異常處理機制
5.1.3Java的異常處理
5.2Java異常的捕獲與處理
5.2.1trycatch語句
5.2.2finally語句
5.3Java異常的拋出
5.3.1從方法體中拋出異常對象
5.3.2針對被拋出的異常對象的處理
5.4Java基礎包中定義的常用異常類
5.4.1異常類的根類與直接子類
5.4.2java.lang包中定義的具體異常類
5.5自定義異常類
5.5.1異常類定義規則及拋出
5.5.2捕獲自定義異常對象
5.6小結
5.7習題
第6章Java基礎類的應用
6.1java.lang包
6.2Object類
6.3基本數據類型類
6.3.1整型類
6.3.2浮點類
6.3.3其他常用類
6.4字符串String類
6.4.1String類
6.4.2創建String對象并對其進行操作
6.4.3StringBuffer類
6.4.4創建StringBuffer對象并對其進行操作
6.5Math類
6.6Runtime類
6.7System類
6.8小結
6.9習題
第二部分案例應用篇
第7章Java輸入和輸出操作案例
7.1Java的輸入、輸出機制
7.1.1Java數據流傳輸模式
7.1.2Java數據流的主要操作類
7.2控制臺輸入、輸出操作案例
7.3文件輸入、輸出操作案例
7.3.1字節流文件輸入、輸出操作
7.3.2字符流文件輸入、輸出操作
7.4文件隨機讀寫操作案例
7.5對象序列化傳輸案例
7.6小結
7.7習題
第8章Java圖形用戶界面設計案例
8.1構成GUI的組件
8.1.1Java組件類
8.1.2組件屬性控制
8.1.3GUI的組成
8.2組件事件處理
8.2.1Java組件事件監聽處理機制
8.2.2Java組件事件監聽標準程序代碼
8.3java.awt包中組件應用案例
8.3.1鼠標操作應用案例
8.3.2鍵盤操作應用案例
8.4javax.swing包中組件應用案例
8.4.1修改組件屬性案例
8.4.2記事本應用程序案例
8.4.3Excel表格文件內容顯示案例
8.5小結
8.6習題
第9章Applet小程序案例
9.1Applet類及Applet小程序
9.1.1Applet小程序類
9.1.2Applet小程序編程框架
9.2Applet小程序的運行機制
9.3Java程序Application和Applet
9.4Applet小程序應用案例
9.4.1顯示外部參數Applet小程序
9.4.2顯示時間Applet小程序
9.4.3播放聲音Applet小程序
9.4.4Applet小程序界面添加菜單
9.5小結
9.6習題
第10章Java基礎繪制圖形案例
10.1Java基礎圖形繪制功能
10.1.1Graphics圖形類
10.1.2繪圖坐標體系
10.1.3Graphics類中主要繪圖操作方法
10.2Java圖形繪制案例
10.2.1繪制各種圖形和圖像
10.2.2繪制數學函數圖形
10.2.3繪制直方圖
10.2.4繪制文字
10.2.5簡單繪圖程序
10.3小結
10.4習題
第11章Java高級圖像處理案例
11.1Java 2D繪制圖形案例
11.1.1二維圖形的繪制機制
11.1.2繪制二維圖形案例
11.2Java 2D圖形、文字處理案例
11.2.1二維圖形后期處理案例
11.2.2二維文字后期處理案例
11.3Java 2D圖像處理案例
11.3.1二維圖像處理機制
11.3.2二維圖像邊緣檢測案例
11.3.3二維圖像綜合處理案例
11.4小結
11.5習題
第12章Java多線程應用案例
12.1線程
12.1.1Runnable接口和Thread類
12.1.2創建啟動線程對象
12.1.3創建具有多線程功能的Applet小程序
12.2Java多線程機制
12.2.1線程對象的生命周期和狀態
12.2.2線程對象的基本控制
12.2.3多線程問題
12.2.4線程間的同步控制機制
12.3多線程應用程序案例
12.3.1Thread類中的sleep()方法
12.3.2Object類中的線程控制方法
12.3.3賬戶數據操作問題
12.3.4實時時鐘顯示Applet小程序
12.3.5滾動顯示文字信息Applet小程序
12.4小結
12.5習題
第13章Java動畫制作案例
13.1簡單圖形動畫制作案例
13.2文字動態顯示案例
13.3圖像動態顯示案例
13.3.1動態顯示多幅圖像
13.3.2單幅圖像變形動態顯示
13.4圖像緩沖技術動態顯示案例
13.4.1緩沖技術
13.4.2利用緩沖技術實現動態顯示圖像案例
13.5小結
13.6習題
第14章Java網絡應用案例
14.1URL通信
14.1.1創建并連接URL對象
14.1.2獲取網絡資源案例
14.1.3Web服務器提供HTTP服務案例
14.2Socket通信
14.2.1建立服務器和客戶機Socket通信程序框架
14.2.2Socket通信案例
14.2.3網絡聊天室程序案例
14.3UDP通信
14.3.1建立UDP通信程序框架
14.3.2UDP通信案例
14.4小結
14.5習題
第15章Java數據庫應用案例
15.1JDBC概述
15.1.1JDBC API
15.1.2JDBC的組成
15.1.3JDBC的任務
15.2數據庫操作命令SQL
15.2.1創建、刪除數據庫
15.2.2創建、刪除、修改基本表格
15.2.3創建、刪除索引
15.2.4創建、刪除視圖
15.2.5數據查詢
15.2.6數據更新
15.3創建Java數據庫應用模型
15.3.1創建數據源
15.3.2加載數據庫驅動程序
15.3.3連接數據庫
15.3.4操作數據庫
15.3.5獲取數據結果集
15.4JDBC API應用案例
15.4.1顯示查詢數據庫結果
15.4.2向數據庫中追加記錄
15.4.3SQL命令操作數據庫
15.4.4Applet數據庫應用案例
15.5小結
15.6習題