本書是《Java程序設(shè)計》的第2版,繼續(xù)保持了原教材的特點——注重理論傳承和實用為先。本書拓展了面向?qū)ο蟪绦蛟O(shè)計的知識,重新編排了所有例題,并對部分內(nèi)容做了調(diào)整,增加了新知識和新例題。本書重點講解Java程序設(shè)計知識及其編程方法,包括Java語言的基礎(chǔ)語法、面向?qū)ο蟪绦蛟O(shè)計、編程規(guī)范、泛型、數(shù)組、字符串、向量、哈希表、枚舉、異常處理、文件和數(shù)據(jù)流、Applet程序、線程、網(wǎng)絡(luò)程序設(shè)計、多媒體和圖形學(xué)程序設(shè)計等,本書有配套的習(xí)題與實驗指導(dǎo)書。
本書既可以作為高等學(xué)校計算機專業(yè)和非計算機專業(yè)的基礎(chǔ)教材,也可以作為需要使用Java語言的工程技術(shù)人員和科技工作者的自學(xué)參考書。
楊厚群,男,海南大學(xué)信息科學(xué)技術(shù)學(xué)院教授,博士。
專業(yè)方向:數(shù)據(jù)挖掘與機器學(xué)習(xí),軟件工程,農(nóng)業(yè)信息化。
第1章 Java概述
1.1 Java發(fā)展簡史
1.2 Java語言的特點
1.3 Java和互聯(lián)網(wǎng)
1.4 Java APPLICATION程序
1.5 Java Applet程序
1.6 圖形界面與命令行工具
1.7 JDK開發(fā)工具
1.7.1 JDK 基本命令
1.7.2 JDK構(gòu)成
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程序調(diào)試
第2章 Java基本編程結(jié)構(gòu)
2.1 簡單的Java程序
2.2 注釋
2.3 基本數(shù)據(jù)類型
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 算術(shù)運算符
2.6.3 關(guān)系運算符
2.6.4 邏輯運算符
2.6.5 位運算符
2.6.6 其他運算符
2.6.7 運算符優(yōu)先級與結(jié)合性
2.7 控制結(jié)構(gòu)
2.7.1 分支語句
2.7.2 循環(huán)語句
2.7.3 與程序轉(zhuǎn)移有關(guān)的跳轉(zhuǎn)語句
第3章 字符串和數(shù)組
3.1 字符串
3.1.1 String類
3.1.2 StringBuffer類
3.1.3 StringTokenizer類
3.1.4 Character類
3.2 數(shù)組
3.2.1 一維數(shù)組
3.2.2 多維數(shù)組
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 面向?qū)ο蟪绦蛟O(shè)計
4.1.1 面向?qū)ο蠓椒▽W(xué)
4.1.2 面向?qū)ο蟮幕靖拍?
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 構(gòu)造方法的定義與重載
4.2.6 將消息傳遞給方法或構(gòu)造器
4.2.7 嵌套的類
4.3 對象實例化
4.3.1 創(chuàng)建對象
4.3.2 使用對象
4.3.3 清除對象
4.4 訪問屬性控制
4.4.1 默認(rèn)訪問屬性
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 綜合應(yīng)用示例
第5章 繼承與多態(tài)
5.1 類的繼承
5.1.1 子類的定義
5.1.2 子類的構(gòu)造方法
5.2 類成員的隱藏與重載
5.2.1 類成員的繼承
5.2.2 成員變量的隱藏
5.2.3 成員方法的重載與覆蓋
5.2.4 構(gòu)造方法的覆蓋
5.3 多態(tài)性
5.3.1 多態(tài)性簡述
5.3.2 參數(shù)多態(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 對象轉(zhuǎn)型和類的設(shè)計原則
5.9 綜合應(yīng)用示例
第6章 異常處理
6.1 異常和異常類
6.2 檢查和非檢查異常
6.3 異常處理
6.3.1 try-catch-finally語句
6.3.2 再次拋出異常
6.4 異常處理技巧
6.5 創(chuàng)建自己的異常類
6.6 綜合應(yīng)用示例
第7章 圖形編程
7.1 Swing概述
7.1.1 Swing與AWT之間的關(guān)系
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 設(shè)置顏色
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 圖標(biāo)
7.8 綜合應(yīng)用示例
第8章 Java Swing與事件處理
8.1 布局管理介紹
8.1.1 順序布局(FlowLayout)
8.1.2 網(wǎng)格布局(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 按鈕與標(biāo)簽
8.3.1 按鈕
8.3.2 標(biāo)簽
8.4 選擇組件
8.4.1 復(fù)選框
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 復(fù)雜的布局管理
8.6.1 卡片布局(CardLayout)
8.6.2 網(wǎng)格袋布局(GridBagLayout)
8.7 對話框
8.7.1 消息對話框
8.7.2 確認(rèn)對話框
8.7.3 輸入對話框
8.6.4 選項對話框
8.8 事件處理基礎(chǔ)
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 鼠標(biāo)事件
8.11.3 鍵盤事件
8.12 綜合應(yīng)用示例
第9章 Applet基礎(chǔ)
9.1 Applet運行原理
9.2 Applet的HTML標(biāo)記和屬性
9.3 多媒體應(yīng)用
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)先級和調(diào)度管理
10.4 擴(kuò)展Thread類創(chuàng)建線程
10.5 實現(xiàn)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 標(biāo)準(zhǔn)輸入輸出
11.2 字符的輸入與輸出
11.3 數(shù)據(jù)輸入輸出流
11.4 Java程序的文件與目錄
11.4.1 創(chuàng)建File類對象
11.4.2 獲取文件或目錄屬性
11.4.3 文件或目錄操作
11.4.4 順序文件的訪問
11.4.5 隨機文件的訪問
11.5 綜合應(yīng)用示例
第12章 Java的網(wǎng)絡(luò)編程
12.1 網(wǎng)絡(luò)基礎(chǔ)知識
12.1.1 IP地址
12.1.2 端口
12.1.3 客戶機與服務(wù)器
12.1.4 URL概念
12.1.5 TCP/IP網(wǎng)絡(luò)參考模型
12.2 Java網(wǎng)絡(luò)編程概述
12.3 Java網(wǎng)絡(luò)類和接口
12.4 基于URL的網(wǎng)絡(luò)編程
12.4.1 URL類和URL對象
12.4.2 使用URL讀取網(wǎng)絡(luò)資源
12.4.3 通過URLConnetction連接網(wǎng)絡(luò)
12.5 基于Socket的網(wǎng)絡(luò)編程
12.5.1 Socket類
12.5.2 ServerSocket類
12.5.3 Socket通訊的過程
12.5.4 客戶端Socket
12.5.5 服務(wù)器Socket
12.5.6 C/S環(huán)境下Socket的應(yīng)用
12.6 數(shù)據(jù)報通信的應(yīng)用
12.7 綜合應(yīng)用示例
第1章 Java概述
1.1 Java發(fā)展簡史
1.2 Java語言的特點
1.3 Java和互聯(lián)網(wǎng)
1.4 Java APPLICATION程序
1.5 Java Applet程序
1.6 圖形界面與命令行工具
1.7 JDK開發(fā)工具
1.7.1 JDK 基本命令
1.7.2 JDK構(gòu)成
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程序調(diào)試
第2章 Java基本編程結(jié)構(gòu)
2.1 簡單的Java程序
2.2 注釋
2.3 基本數(shù)據(jù)類型
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 算術(shù)運算符
2.6.3 關(guān)系運算符
2.6.4 邏輯運算符
2.6.5 位運算符
2.6.6 其他運算符
2.6.7 運算符優(yōu)先級與結(jié)合性
2.7 控制結(jié)構(gòu)
2.7.1 分支語句
2.7.2 循環(huán)語句
2.7.3 與程序轉(zhuǎn)移有關(guān)的跳轉(zhuǎn)語句
第3章 字符串和數(shù)組
3.1 字符串
3.1.1 String類
3.1.2 StringBuffer類
3.1.3 StringTokenizer類
3.1.4 Character類
3.2 數(shù)組
3.2.1 一維數(shù)組
3.2.2 多維數(shù)組
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 面向?qū)ο蟪绦蛟O(shè)計
4.1.1 面向?qū)ο蠓椒▽W(xué)
4.1.2 面向?qū)ο蟮幕靖拍?
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 構(gòu)造方法的定義與重載
4.2.6 將消息傳遞給方法或構(gòu)造器
4.2.7 嵌套的類
4.3 對象實例化
4.3.1 創(chuàng)建對象
4.3.2 使用對象
4.3.3 清除對象
4.4 訪問屬性控制
4.4.1 默認(rèn)訪問屬性
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 綜合應(yīng)用示例
第5章 繼承與多態(tài)
5.1 類的繼承
5.1.1 子類的定義
5.1.2 子類的構(gòu)造方法
5.2 類成員的隱藏與重載
5.2.1 類成員的繼承
5.2.2 成員變量的隱藏
5.2.3 成員方法的重載與覆蓋
5.2.4 構(gòu)造方法的覆蓋
5.3 多態(tài)性
5.3.1 多態(tài)性簡述
5.3.2 參數(shù)多態(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 對象轉(zhuǎn)型和類的設(shè)計原則
5.9 綜合應(yīng)用示例
第6章 異常處理
6.1 異常和異常類
6.2 檢查和非檢查異常
6.3 異常處理
6.3.1 try-catch-finally語句
6.3.2 再次拋出異常
6.4 異常處理技巧
6.5 創(chuàng)建自己的異常類
6.6 綜合應(yīng)用示例
第7章 圖形編程
7.1 Swing概述
7.1.1 Swing與AWT之間的關(guān)系
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 設(shè)置顏色
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 圖標(biāo)
7.8 綜合應(yīng)用示例
第8章 Java Swing與事件處理
8.1 布局管理介紹
8.1.1 順序布局(FlowLayout)
8.1.2 網(wǎng)格布局(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 按鈕與標(biāo)簽
8.3.1 按鈕
8.3.2 標(biāo)簽
8.4 選擇組件
8.4.1 復(fù)選框
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 復(fù)雜的布局管理
8.6.1 卡片布局(CardLayout)
8.6.2 網(wǎng)格袋布局(GridBagLayout)
8.7 對話框
8.7.1 消息對話框
8.7.2 確認(rèn)對話框
8.7.3 輸入對話框
8.6.4 選項對話框
8.8 事件處理基礎(chǔ)
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 鼠標(biāo)事件
8.11.3 鍵盤事件
8.12 綜合應(yīng)用示例
第9章 Applet基礎(chǔ)
9.1 Applet運行原理
9.2 Applet的HTML標(biāo)記和屬性
9.3 多媒體應(yīng)用
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)先級和調(diào)度管理
10.4 擴(kuò)展Thread類創(chuàng)建線程
10.5 實現(xiàn)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 標(biāo)準(zhǔn)輸入輸出
11.2 字符的輸入與輸出
11.3 數(shù)據(jù)輸入輸出流
11.4 Java程序的文件與目錄
11.4.1 創(chuàng)建File類對象
11.4.2 獲取文件或目錄屬性
11.4.3 文件或目錄操作
11.4.4 順序文件的訪問
11.4.5 隨機文件的訪問
11.5 綜合應(yīng)用示例
第12章 Java的網(wǎng)絡(luò)編程
12.1 網(wǎng)絡(luò)基礎(chǔ)知識
12.1.1 IP地址
12.1.2 端口
12.1.3 客戶機與服務(wù)器
12.1.4 URL概念
12.1.5 TCP/IP網(wǎng)絡(luò)參考模型
12.2 Java網(wǎng)絡(luò)編程概述
12.3 Java網(wǎng)絡(luò)類和接口
12.4 基于URL的網(wǎng)絡(luò)編程
12.4.1 URL類和URL對象
12.4.2 使用URL讀取網(wǎng)絡(luò)資源
12.4.3 通過URLConnetction連接網(wǎng)絡(luò)
12.5 基于Socket的網(wǎng)絡(luò)編程
12.5.1 Socket類
12.5.2 ServerSocket類
12.5.3 Socket通訊的過程
12.5.4 客戶端Socket
12.5.5 服務(wù)器Socket
12.5.6 C/S環(huán)境下Socket的應(yīng)用
12.6 數(shù)據(jù)報通信的應(yīng)用
12.7 綜合應(yīng)用示例
本書的章節(jié)編排與內(nèi)容以人們學(xué)習(xí)與認(rèn)知過程為基礎(chǔ),保持“注重實驗”的風(fēng)格,盡可能將面向?qū)ο缶幊毯蚃ava自身的特點緊密結(jié)合,在內(nèi)容編排上充分反映Java語言這些年來的發(fā)展,并兼顧到項目管理和環(huán)境的要求;注重內(nèi)容的可讀性和可用性,與實際需求相匹配,幫助讀者對Java程序設(shè)計的整體情況與近期發(fā)展有一個比較全面的理解。具體內(nèi)容力求簡明,許多例題都經(jīng)過精心設(shè)計,既能幫助理解知識,又具有啟發(fā)性;每章都包含了圖、表、例程以及類和接口的說明,希望使讀者在輕松和愉快之中迅速地理解與掌握J(rèn)ava程序設(shè)計的知識和方法,并應(yīng)用到實踐中去。
本書的例題全部在JDK1.7環(huán)境下編譯通過。本書還配套了習(xí)題解析與實驗指導(dǎo)一書,對應(yīng)主教材的每一章都有練習(xí)題,通過完成練習(xí)題可以使讀者加深知識的理解。
本書由楊厚群主編,陳靜、王業(yè)統(tǒng)、靳婷、邢詒杏、符發(fā)參編,海南大學(xué)陳傳漢教授承擔(dān)書稿的審閱,陳明銳教授對本書的編寫給予了大力的支持,對此編者表示由衷的感謝。
由于Java程序設(shè)計覆蓋面廣,發(fā)展又很迅速,編者水平有限,疏漏難免,誠懇希望讀者不吝指正。
編 者
2015.5.6
本書在**版的基礎(chǔ)上,全面講解了Java的基礎(chǔ)內(nèi)容和編程方法,在內(nèi)容的深度和廣度方面都給予了仔細(xì)考慮,在類,對象、繼承、接口等重要的基礎(chǔ)知識上側(cè)重深度,在實用類的講解上側(cè)重廣度。通過本書的學(xué)習(xí),讀者可以掌握J(rèn)ava面向?qū)ο缶幊痰乃枷牒蚃ava在網(wǎng)絡(luò)編程中的一些重要技術(shù)。
全書共分12章。**章主要介紹Java語言的特點和開發(fā)環(huán)境,讀者可以了解到Java如何做到跨平臺的。第2章介紹Java基本編程結(jié)構(gòu),了解Java程序的基本構(gòu)成和結(jié)構(gòu)化編程的內(nèi)容。第3章介紹*常用的字符串和數(shù)組知識。第4章和第5章是本書的重點內(nèi)容之一,講述了類、對象、繼承、接口、多態(tài)及泛型等面向?qū)ο蟪绦蛟O(shè)計的重要知識。第6章介紹異常處理,包括了檢查型和非檢查型異常的知識和異常處理的技巧。第7章講述的是圖像編程,介紹了常用的框架和容器,涉及到Color、Font和FontMetrics等類的使用。第8章介紹Java Swing與事件處理,主要包括布局管理器和組件的使用,事件處理的原理和如何掌握窗口事件、鼠標(biāo)事件、鍵盤事件的應(yīng)用。第9章講解Applet基礎(chǔ),介紹Applet的運行原理及其多媒體應(yīng)用。第10章講述了多線程技術(shù),這是較難掌握的一部份內(nèi)容,在這一章我們通過許多有啟發(fā)的例子來幫助讀者理解多線程編程。第11章講解Java中的輸入和輸出流技術(shù)。第12章講解Java在網(wǎng)絡(luò)編程中的一些重要技術(shù),涉及到URL、Socket、InetAddress、DatagramPacket、UDP等重要的網(wǎng)絡(luò)概念。
本書的章節(jié)編排與內(nèi)容以人們學(xué)習(xí)與認(rèn)知過程為基礎(chǔ),保持“注重實驗”的風(fēng)格,盡可能將面向?qū)ο缶幊毯蚃ava自身的特點緊密結(jié)合,在內(nèi)容編排上充分反映Java語言這些年來的發(fā)展,并兼顧到項目管理和環(huán)境的要求;注重內(nèi)容的可讀性和可用性,與實際需求相匹配,幫助讀者對Java程序設(shè)計的整體情況與近期發(fā)展有一個比較全面的理解。具體內(nèi)容力求簡明,許多例題都經(jīng)過精心設(shè)計,既能幫助理解知識,又具有啟發(fā)性;每章都包含了圖、表、例程以及類和接口的說明,希望使讀者在輕松和愉快之中迅速地理解與掌握J(rèn)ava程序設(shè)計的知識和方法,并應(yīng)用到實踐中去。
本書的例題全部在JDK1.7環(huán)境下編譯通過。本書還配套了習(xí)題解析與實驗指導(dǎo)一書,對應(yīng)主教材的每一章都有練習(xí)題,通過完成練習(xí)題可以使讀者加深知識的理解。
……