本書是《Java程序設計》的第2版,繼續(xù)保持了原教材的特點——注重理論傳承和實用為先。本書拓展了面向對象程序設計的知識,重新編排了所有例題,并對部分內容做了調整,增加了新知識和新例題。本書重點講解Java程序設計知識及其編程方法,包括Java語言的基礎語法、面向對象程序設計、編程規(guī)范、泛型、數組、字符串、向量、哈希表、枚舉、異常處理、文件和數據流、Applet程序、線程、網絡程序設計、多媒體和圖形學程序設計等,本書有配套的習題與實驗指導書。
本書既可以作為高等學校計算機專業(yè)和非計算機專業(yè)的基礎教材,也可以作為需要使用Java語言的工程技術人員和科技工作者的自學參考書。
楊厚群,男,海南大學信息科學技術學院教授,博士。
專業(yè)方向:數據挖掘與機器學習,軟件工程,農業(yè)信息化。
第1章 Java概述
1.1 Java發(fā)展簡史
1.2 Java語言的特點
1.3 Java和互聯網
1.4 Java APPLICATION程序
1.5 Java Applet程序
1.6 圖形界面與命令行工具
1.7 JDK開發(fā)工具
1.7.1 JDK 基本命令
1.7.2 JDK構成
1.7.2 JDK安裝與配置
1.8 ECLIPSE集成開發(fā)環(huán)境
1.8.1 安裝
1.8.2 界面介紹
1.8.3 創(chuàng)建Java項目并運行
1.8.4 Java程序調試
第2章 Java基本編程結構
2.1 簡單的Java程序
2.2 注釋
2.3 基本數據類型
2.3.1 布爾型
2.3.2 字符型
2.3.3 整型
2.3.4 浮點型
2.4 變量
2.4.1 聲明變量
2.4.2 變量的使用
2.4.3 變量的作用域
2.5 常量
2.6 運算符
2.6.1 賦值運算符
2.6.2 算術運算符
2.6.3 關系運算符
2.6.4 邏輯運算符
2.6.5 位運算符
2.6.6 其他運算符
2.6.7 運算符優(yōu)先級與結合性
2.7 控制結構
2.7.1 分支語句
2.7.2 循環(huán)語句
2.7.3 與程序轉移有關的跳轉語句
第3章 字符串和數組
3.1 字符串
3.1.1 String類
3.1.2 StringBuffer類
3.1.3 StringTokenizer類
3.1.4 Character類
3.2 數組
3.2.1 一維數組
3.2.2 多維數組
3.3 排序
3.3.1 選擇排序
3.3.2 插入排序
3.3.3 冒泡排序
3.4 查找
3.4.1 線性查找
3.4.2 二分查找
3.4.3 冒泡排序
第4章 對象和類
4.1 面向對象程序設計
4.1.1 面向對象方法學
4.1.2 面向對象的基本概念
4.1.3 UML靜態(tài)視圖
4.2 創(chuàng)建用戶類
4.2.1 類的定義
4.2.2 成員變量的定義與初始化
4.2.3 成員方法的定義
4.2.4 成員方法的重載
4.2.5 構造方法的定義與重載
4.2.6 將消息傳遞給方法或構造器
4.2.7 嵌套的類
4.3 對象實例化
4.3.1 創(chuàng)建對象
4.3.2 使用對象
4.3.3 清除對象
4.4 訪問屬性控制
4.4.1 默認訪問屬性
4.4.2 public
4.4.3 private
4.4.4 protected
4.5 靜態(tài)成員
4.5.1 靜態(tài)成員變量
4.5.2 靜態(tài)成員方法
4.6 FINAL, THIS 和NULL
4.7 包
4.7.1 包的聲明
4.7.2 包的載入
4.7.3 常用系統(tǒng)包簡介
4.8 綜合應用示例
第5章 繼承與多態(tài)
5.1 類的繼承
5.1.1 子類的定義
5.1.2 子類的構造方法
5.2 類成員的隱藏與重載
5.2.1 類成員的繼承
5.2.2 成員變量的隱藏
5.2.3 成員方法的重載與覆蓋
5.2.4 構造方法的覆蓋
5.3 多態(tài)性
5.3.1 多態(tài)性簡述
5.3.2 參數多態(tài)性示例
5.4 Object類和 Class類
5.5 抽象類與接口
5.5.1 抽象類
5.5.2 接口
5.6 泛型
5.6.1 泛型聲明
5.6.2 泛型類
5.5.1 泛型方法
5.5.2 通配符泛型
5.7 對象克隆
5.8 對象轉型和類的設計原則
5.9 綜合應用示例
第6章 異常處理
6.1 異常和異常類
6.2 檢查和非檢查異常
6.3 異常處理
6.3.1 try-catch-finally語句
6.3.2 再次拋出異常
6.4 異常處理技巧
6.5 創(chuàng)建自己的異常類
6.6 綜合應用示例
第7章 圖形編程
7.1 Swing概述
7.1.1 Swing與AWT之間的關系
7.1.2 Swing特點
7.1.3 Swing組件和容器
7.2 框架
7.2.1 創(chuàng)建并顯示框架
7.2.2 給框架定位
7.2.3 在框架中創(chuàng)建組件
7.3 在面板中顯示信息
7.4 顏色
7.4.1 設置顏色
7.4.2 Color類的使用
7.5 繪制幾何圖形
7.5.1 繪制圖形
7.5.2 寫字
7.6 文本和字體
7.6.1 Font類
7.6.2 Fontmetrics類
7.7 圖像
7.7.1 加載圖像并顯示圖像
7.7.2 圖標
7.8 綜合應用示例
第8章 Java Swing與事件處理
8.1 布局管理介紹
8.1.1 順序布局(FlowLayout)
8.1.2 網格布局(GridLayout)
8.1.3 邊框布局(BorderLayout)
8.1.4 箱式布局(BoxLayout)
8.2 文本輸入
8.2.1 文本框JTextField
8.2.2 JPasswordField
8.2.3 JtextArea文本區(qū)
8.3 按鈕與標簽
8.3.1 按鈕
8.3.2 標簽
8.4 選擇組件
8.4.1 復選框
8.4.2 單選按鈕
8.4.3 列表
8.4.4 下拉列表和組合框
8.4.5 選項卡
8.4.6 滾動條
8.4.7 多個窗口
8.5 菜單
8.5.1 菜單欄
8.5.2 菜單
8.5.3 菜單項
8.6 復雜的布局管理
8.6.1 卡片布局(CardLayout)
8.6.2 網格袋布局(GridBagLayout)
8.7 對話框
8.7.1 消息對話框
8.7.2 確認對話框
8.7.3 輸入對話框
8.6.4 選項對話框
8.8 事件處理基礎
8.8.1 事件和事件源
8.8.2 事件注冊監(jiān)聽和處理
8.8.3 事件處理
8.9 AWT事件繼承層次
8.10 AWT的語義事件和低層事件
8.11 低層事件類型
8.11.1 窗口事件
8.11.2 鼠標事件
8.11.3 鍵盤事件
8.12 綜合應用示例
第9章 Applet基礎
9.1 Applet運行原理
9.2 Applet的HTML標記和屬性
9.3 多媒體應用
9.3.1 在Applet中播放聲音
9.3.2 在Applet中繪制圖形和圖像
9.3.3 在Applet中顯示圖像
9.4 JAR文件
第10章 多線程
10.1 Java中的線程
10.2 線程的生命周期
10.3 線程的優(yōu)先級和調度管理
10.4 擴展Thread類創(chuàng)建線程
10.5 實現Runnable接口創(chuàng)建線程
10.6 常用方法
10.7 線程同步
10.8 線程組
第11章 輸入輸出流及文件
11.1 Java輸入輸出類庫
11.1.1 流的概念
11.1.2 基本輸入輸出流類
11.1.3 其他輸入輸出流類
11.1.4 標準輸入輸出
11.2 字符的輸入與輸出
11.3 數據輸入輸出流
11.4 Java程序的文件與目錄
11.4.1 創(chuàng)建File類對象
11.4.2 獲取文件或目錄屬性
11.4.3 文件或目錄操作
11.4.4 順序文件的訪問
11.4.5 隨機文件的訪問
11.5 綜合應用示例
第12章 Java的網絡編程
12.1 網絡基礎知識
12.1.1 IP地址
12.1.2 端口
12.1.3 客戶機與服務器
12.1.4 URL概念
12.1.5 TCP/IP網絡參考模型
12.2 Java網絡編程概述
12.3 Java網絡類和接口
12.4 基于URL的網絡編程
12.4.1 URL類和URL對象
12.4.2 使用URL讀取網絡資源
12.4.3 通過URLConnetction連接網絡
12.5 基于Socket的網絡編程
12.5.1 Socket類
12.5.2 ServerSocket類
12.5.3 Socket通訊的過程
12.5.4 客戶端Socket
12.5.5 服務器Socket
12.5.6 C/S環(huán)境下Socket的應用
12.6 數據報通信的應用
12.7 綜合應用示例
第1章 Java概述
1.1 Java發(fā)展簡史
1.2 Java語言的特點
1.3 Java和互聯網
1.4 Java APPLICATION程序
1.5 Java Applet程序
1.6 圖形界面與命令行工具
1.7 JDK開發(fā)工具
1.7.1 JDK 基本命令
1.7.2 JDK構成
1.7.2 JDK安裝與配置
1.8 ECLIPSE集成開發(fā)環(huán)境
1.8.1 安裝
1.8.2 界面介紹
1.8.3 創(chuàng)建Java項目并運行
1.8.4 Java程序調試
第2章 Java基本編程結構
2.1 簡單的Java程序
2.2 注釋
2.3 基本數據類型
2.3.1 布爾型
2.3.2 字符型
2.3.3 整型
2.3.4 浮點型
2.4 變量
2.4.1 聲明變量
2.4.2 變量的使用
2.4.3 變量的作用域
2.5 常量
2.6 運算符
2.6.1 賦值運算符
2.6.2 算術運算符
2.6.3 關系運算符
2.6.4 邏輯運算符
2.6.5 位運算符
2.6.6 其他運算符
2.6.7 運算符優(yōu)先級與結合性
2.7 控制結構
2.7.1 分支語句
2.7.2 循環(huán)語句
2.7.3 與程序轉移有關的跳轉語句
第3章 字符串和數組
3.1 字符串
3.1.1 String類
3.1.2 StringBuffer類
3.1.3 StringTokenizer類
3.1.4 Character類
3.2 數組
3.2.1 一維數組
3.2.2 多維數組
3.3 排序
3.3.1 選擇排序
3.3.2 插入排序
3.3.3 冒泡排序
3.4 查找
3.4.1 線性查找
3.4.2 二分查找
3.4.3 冒泡排序
第4章 對象和類
4.1 面向對象程序設計
4.1.1 面向對象方法學
4.1.2 面向對象的基本概念
4.1.3 UML靜態(tài)視圖
4.2 創(chuàng)建用戶類
4.2.1 類的定義
4.2.2 成員變量的定義與初始化
4.2.3 成員方法的定義
4.2.4 成員方法的重載
4.2.5 構造方法的定義與重載
4.2.6 將消息傳遞給方法或構造器
4.2.7 嵌套的類
4.3 對象實例化
4.3.1 創(chuàng)建對象
4.3.2 使用對象
4.3.3 清除對象
4.4 訪問屬性控制
4.4.1 默認訪問屬性
4.4.2 public
4.4.3 private
4.4.4 protected
4.5 靜態(tài)成員
4.5.1 靜態(tài)成員變量
4.5.2 靜態(tài)成員方法
4.6 FINAL, THIS 和NULL
4.7 包
4.7.1 包的聲明
4.7.2 包的載入
4.7.3 常用系統(tǒng)包簡介
4.8 綜合應用示例
第5章 繼承與多態(tài)
5.1 類的繼承
5.1.1 子類的定義
5.1.2 子類的構造方法
5.2 類成員的隱藏與重載
5.2.1 類成員的繼承
5.2.2 成員變量的隱藏
5.2.3 成員方法的重載與覆蓋
5.2.4 構造方法的覆蓋
5.3 多態(tài)性
5.3.1 多態(tài)性簡述
5.3.2 參數多態(tài)性示例
5.4 Object類和 Class類
5.5 抽象類與接口
5.5.1 抽象類
5.5.2 接口
5.6 泛型
5.6.1 泛型聲明
5.6.2 泛型類
5.5.1 泛型方法
5.5.2 通配符泛型
5.7 對象克隆
5.8 對象轉型和類的設計原則
5.9 綜合應用示例
第6章 異常處理
6.1 異常和異常類
6.2 檢查和非檢查異常
6.3 異常處理
6.3.1 try-catch-finally語句
6.3.2 再次拋出異常
6.4 異常處理技巧
6.5 創(chuàng)建自己的異常類
6.6 綜合應用示例
第7章 圖形編程
7.1 Swing概述
7.1.1 Swing與AWT之間的關系
7.1.2 Swing特點
7.1.3 Swing組件和容器
7.2 框架
7.2.1 創(chuàng)建并顯示框架
7.2.2 給框架定位
7.2.3 在框架中創(chuàng)建組件
7.3 在面板中顯示信息
7.4 顏色
7.4.1 設置顏色
7.4.2 Color類的使用
7.5 繪制幾何圖形
7.5.1 繪制圖形
7.5.2 寫字
7.6 文本和字體
7.6.1 Font類
7.6.2 Fontmetrics類
7.7 圖像
7.7.1 加載圖像并顯示圖像
7.7.2 圖標
7.8 綜合應用示例
第8章 Java Swing與事件處理
8.1 布局管理介紹
8.1.1 順序布局(FlowLayout)
8.1.2 網格布局(GridLayout)
8.1.3 邊框布局(BorderLayout)
8.1.4 箱式布局(BoxLayout)
8.2 文本輸入
8.2.1 文本框JTextField
8.2.2 JPasswordField
8.2.3 JtextArea文本區(qū)
8.3 按鈕與標簽
8.3.1 按鈕
8.3.2 標簽
8.4 選擇組件
8.4.1 復選框
8.4.2 單選按鈕
8.4.3 列表
8.4.4 下拉列表和組合框
8.4.5 選項卡
8.4.6 滾動條
8.4.7 多個窗口
8.5 菜單
8.5.1 菜單欄
8.5.2 菜單
8.5.3 菜單項
8.6 復雜的布局管理
8.6.1 卡片布局(CardLayout)
8.6.2 網格袋布局(GridBagLayout)
8.7 對話框
8.7.1 消息對話框
8.7.2 確認對話框
8.7.3 輸入對話框
8.6.4 選項對話框
8.8 事件處理基礎
8.8.1 事件和事件源
8.8.2 事件注冊監(jiān)聽和處理
8.8.3 事件處理
8.9 AWT事件繼承層次
8.10 AWT的語義事件和低層事件
8.11 低層事件類型
8.11.1 窗口事件
8.11.2 鼠標事件
8.11.3 鍵盤事件
8.12 綜合應用示例
第9章 Applet基礎
9.1 Applet運行原理
9.2 Applet的HTML標記和屬性
9.3 多媒體應用
9.3.1 在Applet中播放聲音
9.3.2 在Applet中繪制圖形和圖像
9.3.3 在Applet中顯示圖像
9.4 JAR文件
第10章 多線程
10.1 Java中的線程
10.2 線程的生命周期
10.3 線程的優(yōu)先級和調度管理
10.4 擴展Thread類創(chuàng)建線程
10.5 實現Runnable接口創(chuàng)建線程
10.6 常用方法
10.7 線程同步
10.8 線程組
第11章 輸入輸出流及文件
11.1 Java輸入輸出類庫
11.1.1 流的概念
11.1.2 基本輸入輸出流類
11.1.3 其他輸入輸出流類
11.1.4 標準輸入輸出
11.2 字符的輸入與輸出
11.3 數據輸入輸出流
11.4 Java程序的文件與目錄
11.4.1 創(chuàng)建File類對象
11.4.2 獲取文件或目錄屬性
11.4.3 文件或目錄操作
11.4.4 順序文件的訪問
11.4.5 隨機文件的訪問
11.5 綜合應用示例
第12章 Java的網絡編程
12.1 網絡基礎知識
12.1.1 IP地址
12.1.2 端口
12.1.3 客戶機與服務器
12.1.4 URL概念
12.1.5 TCP/IP網絡參考模型
12.2 Java網絡編程概述
12.3 Java網絡類和接口
12.4 基于URL的網絡編程
12.4.1 URL類和URL對象
12.4.2 使用URL讀取網絡資源
12.4.3 通過URLConnetction連接網絡
12.5 基于Socket的網絡編程
12.5.1 Socket類
12.5.2 ServerSocket類
12.5.3 Socket通訊的過程
12.5.4 客戶端Socket
12.5.5 服務器Socket
12.5.6 C/S環(huán)境下Socket的應用
12.6 數據報通信的應用
12.7 綜合應用示例
本書的章節(jié)編排與內容以人們學習與認知過程為基礎,保持“注重實驗”的風格,盡可能將面向對象編程和Java自身的特點緊密結合,在內容編排上充分反映Java語言這些年來的發(fā)展,并兼顧到項目管理和環(huán)境的要求;注重內容的可讀性和可用性,與實際需求相匹配,幫助讀者對Java程序設計的整體情況與近期發(fā)展有一個比較全面的理解。具體內容力求簡明,許多例題都經過精心設計,既能幫助理解知識,又具有啟發(fā)性;每章都包含了圖、表、例程以及類和接口的說明,希望使讀者在輕松和愉快之中迅速地理解與掌握Java程序設計的知識和方法,并應用到實踐中去。
本書的例題全部在JDK1.7環(huán)境下編譯通過。本書還配套了習題解析與實驗指導一書,對應主教材的每一章都有練習題,通過完成練習題可以使讀者加深知識的理解。
本書由楊厚群主編,陳靜、王業(yè)統(tǒng)、靳婷、邢詒杏、符發(fā)參編,海南大學陳傳漢教授承擔書稿的審閱,陳明銳教授對本書的編寫給予了大力的支持,對此編者表示由衷的感謝。
由于Java程序設計覆蓋面廣,發(fā)展又很迅速,編者水平有限,疏漏難免,誠懇希望讀者不吝指正。
編 者
2015.5.6
本書在**版的基礎上,全面講解了Java的基礎內容和編程方法,在內容的深度和廣度方面都給予了仔細考慮,在類,對象、繼承、接口等重要的基礎知識上側重深度,在實用類的講解上側重廣度。通過本書的學習,讀者可以掌握Java面向對象編程的思想和Java在網絡編程中的一些重要技術。
全書共分12章。**章主要介紹Java語言的特點和開發(fā)環(huán)境,讀者可以了解到Java如何做到跨平臺的。第2章介紹Java基本編程結構,了解Java程序的基本構成和結構化編程的內容。第3章介紹*常用的字符串和數組知識。第4章和第5章是本書的重點內容之一,講述了類、對象、繼承、接口、多態(tài)及泛型等面向對象程序設計的重要知識。第6章介紹異常處理,包括了檢查型和非檢查型異常的知識和異常處理的技巧。第7章講述的是圖像編程,介紹了常用的框架和容器,涉及到Color、Font和FontMetrics等類的使用。第8章介紹Java Swing與事件處理,主要包括布局管理器和組件的使用,事件處理的原理和如何掌握窗口事件、鼠標事件、鍵盤事件的應用。第9章講解Applet基礎,介紹Applet的運行原理及其多媒體應用。第10章講述了多線程技術,這是較難掌握的一部份內容,在這一章我們通過許多有啟發(fā)的例子來幫助讀者理解多線程編程。第11章講解Java中的輸入和輸出流技術。第12章講解Java在網絡編程中的一些重要技術,涉及到URL、Socket、InetAddress、DatagramPacket、UDP等重要的網絡概念。
本書的章節(jié)編排與內容以人們學習與認知過程為基礎,保持“注重實驗”的風格,盡可能將面向對象編程和Java自身的特點緊密結合,在內容編排上充分反映Java語言這些年來的發(fā)展,并兼顧到項目管理和環(huán)境的要求;注重內容的可讀性和可用性,與實際需求相匹配,幫助讀者對Java程序設計的整體情況與近期發(fā)展有一個比較全面的理解。具體內容力求簡明,許多例題都經過精心設計,既能幫助理解知識,又具有啟發(fā)性;每章都包含了圖、表、例程以及類和接口的說明,希望使讀者在輕松和愉快之中迅速地理解與掌握Java程序設計的知識和方法,并應用到實踐中去。
本書的例題全部在JDK1.7環(huán)境下編譯通過。本書還配套了習題解析與實驗指導一書,對應主教材的每一章都有練習題,通過完成練習題可以使讀者加深知識的理解。
……