本書介紹了Java 程序設計的基礎知識及其編程方法,包括Java 編程基礎、面向對象的思想及概念、常見字符串與類的使用、Java 的集合框架、文件和數據流、數據庫、GUI 及事件響應、多線程和Java 網絡編程等內容。本書以通俗易懂的語言介紹了Java 面向對象編程的思想和編程技巧,內容豐富,結構合理,并且提供了豐富的例程。本書既可以作為高等院校各專業的基礎教材,也可以作為使用Java 的工程技術人員和科技工作者的自學參考書。
郭俊,男,成都理工大學工程技術學院副教授。從事方向為計算機應用、信息技術教學。擔任四川省普通高校應用型本科示范課程建設項目"面向對象編程”課程負責人,成都理工大學工程技術學院精品在線課程"面向對象編程”課程負責人。
目 錄
第1 章 Java 概述························································································1
1.1 Java 的產生與發展···········································································1
1.2 Java 的特點·····················································································1
1.3 JVM 虛擬機····················································································2
1.4 垃圾回收機制··················································································3
1.5 Java 開發環境··················································································3
1.5.1 什么是JDK ···········································································3
1.5.2 JDK 的安裝設置·····································································3
1.5.3 JDK 目錄介紹········································································6
1.6 第一個Java 程序··············································································6
1.6.1 命令行方式···········································································6
1.6.2 使用Eclipse 集成開發環境························································7
1.7 Java 編程規范···············································································.10
1.8 上機實驗·····················································································.10
1.9 本章小結·····················································································.11
習題·································································································.11
第2 章 Java 語言基礎···············································································.12
2.1 基礎語法·····················································································.12
2.1.1 標識符··············································································.12
2.1.2 關鍵字··············································································.12
2.2 數據類型·····················································································.12
2.2.1 基本數據類型·····································································.13
2.2.2 變量的類型轉換··································································.15
2.3 Java 中的運算符············································································.15
2.3.1 算術運算符········································································.16
2.3.2 賦值運算符········································································.17
2.3.3 關系運算符········································································.17
2.3.4 邏輯運算符········································································.18
2.3.5 位運算符···········································································.18
2.3.6 運算符的優先級··································································.19
·VI ·
2.4 流程控制·····················································································.19
2.4.1 順序結構···········································································.20
2.4.2 選擇結構···········································································.20
2.4.3 循環結構···········································································.24
2.4.4 跳轉語句···········································································.27
2.5 數組···························································································.28
2.5.1 數組的概念········································································.28
2.5.2 二維數組···········································································.31
2.6 上機實驗·····················································································.33
2.7 本章小結·····················································································.35
習題·································································································.35
第3 章面向對象 ·····················································································.36
3.1 面向對象的概念············································································.36
3.2 類與對象·····················································································.36
3.2.1 類和對象···········································································.36
3.2.2 類的定義···········································································.37
3.2.3 對象的創建和使用·······························································.38
3.2.4 構造方法···········································································.40
3.2.5 this 關鍵字·········································································.42
3.3 參數傳值·····················································································.44
3.4 static 關鍵字·················································································.45
3.5 基本類型的包裝類·········································································.47
3.6 認識異常·····················································································.48
3.6.1 異常的概念········································································.48
3.6.2 異常的分類········································································.50
3.6.3 異常處理機制·····································································.51
3.6.4 finally 語句·········································································.51
3.6.5 throws 語句·········································································.53
3.6.6 throw 語句··········································································.53
3.6.7 自定義異常········································································.54
3.7 上機實驗·····················································································.55
3.8 本章小結·····················································································.57
習題·································································································.57
第4 章繼承 ···························································································.58
4.1 繼承的概念(子類與父類) ····························································.58
4.2 子類對象的創建············································································.59
4.3 繼承的原則··················································································.60
·VII·
4.4 成員變量的隱藏和方法重寫····························································.60
4.4.1 成員變量的隱藏··································································.60
4.4.2 方法的重寫(Override)························································.60
4.5 super 關鍵字················································································.62
4.6 final 關鍵字·················································································.64
4.7 方法重載與多態············································································.65
4.7.1 方法的重載········································································.65
4.7.2 多態的用法········································································.66
4.8 包······························································································.68
4.9 訪問權限控制···············································································.68
4.9.1 私有變量和私有方法····························································.69
4.9.2 公共變量和公共方法····························································.69
4.9.3 受保護的成員變量和成員方法················································.69
4.9.4 友好的成員變量和成員方法···················································.70
4.9.5 訪問級別控制·····································································.70
4.10 上機實驗···················································································.70
4.11 本章小結···················································································.72
習題·································································································.72
第5 章抽象類與接口 ···············································································.75
5.1 抽象類與抽象方法·········································································.75
5.2 接口的概念與實現·········································································.76
5.3 接口回調·····················································································.78
5.4 接口與多態··················································································.80
5.5 接口與抽象類的比較······································································.81
5.6 上機實驗·····················································································.82
5.7 本章小結·····················································································.82
習題·································································································.82
第6 章內部類 ························································································.85
6.1 內部類的創建和使用······································································.85
6.2 內部類的作用···············································································.86
6.3 內部類的分類···············································································.90
6.3.1 匿名內部類········································································.90
6.3.2 局部內部類········································································.91
6.3.3 靜態內部類········································································.92
6.4 上機實驗·····················································································.93
6.5 本章小結·····················································································.94
習題·································································································.94
·VI II·
第 7 章字符串與常用類 ············································································.97
7.1 字符串························································································.97
7.1.1 String 構造函數···································································.97
7.1.2 字符串的常用方法·······························································.98
7.1.3 字符串應用示例··································································.98
7.1.4 JDK 的幫助文檔··································································.99
7.2 字符串解析··················································································102
7.2.1 正則表達式········································································102
7.2.2 Patterm 類和Matcher 類·························································103
7.3 StringBuffer 類和StringBuilder 類······················································105
7.4 常用類························································································107
7.4.1 Math 類·············································································107
7.4.2 Random 類··········································································108
7.4.3 Date 類和Calendar 類····························································109
7.4.4 DateFormat 類和SimpleDateFormat 類·······································110
7.5 上機實驗·····················································································111
7.6 本章小結·····················································································112
習題·································································································112
第8 章集合與泛型 ··················································································113
8.1 集合框架概述···············································································113
8.2 List 接口·····················································································113
8.2.1 List 接口簡介······································································113
8.2.2 Iterator 接口········································································117
8.3 Set 接口······················································································118
8.3.1 Set 接口簡介·······································································118
8.3.2 HashSet 集合·······································································118
8.3.3 TreeSet 集合·······································································121
8.4 Map 接口····················································································121
8.4.1 HashMap 類········································································122
8.4.2 Properties 類·······································································123
8.5 泛型···························································································124
8.5.1 泛型集合···········································································125
8.5.2 使用泛型類聲明對象····························································126
8.6 上機實驗·····················································································127
8.7 本章小結·····················································································128
習題·································································································128
·IX·
第 9 章輸入輸出流 ··················································································130
9.1 文件類························································································130
9.1.1 創建File 類對象··································································130
9.1.2 獲取文件或目錄的信息·························································130
9.2 字節流和字符流············································································132
9.2.1 字節流··············································································133
9.2.2 字符流··············································································135
9.3 文件流························································································137
9.3.1 FileInputStream 類和FileOutputStream 類···································138
9.3.2 文件字符流········································································140
9.4 緩沖流························································································142
9.4.1 字節緩沖流········································································142
9.4.2 字符緩沖流········································································144
9.5 轉換流························································································145
9.6 隨機讀寫文件類············································································146
9.7 上機實驗·····················································································148
9.8 本章小結·····················································································149
習題·································································································149
第10 章圖形用戶界面 ··············································································150
10.1 Java Swing 概述···········································································150
10.2 Swing 容器·················································································150
10.2.1 JFrame 容器······································································152
10.2.2 對話框·············································································153
10.2.3 JPanel 面板·······································································155
10.3 布局管理器················································································156
10.3.1 BorderLayout 布局管理器·····················································156
10.3.2 FlowLayout 布局管理器·······················································157
10.3.3 GridLayout 布局管理器························································159
10.4 事件處理···················································································160
10.4.1 事件處理模型····································································160
10.4.2 事件類·············································································162
10.4.3 適配器類··········································································165
10.5 Swing 組件·················································································165
10.5.1 文本組件··········································································166
10.5.2 按鈕組件··········································································169
10.6 菜單組件···················································································174
10.6.1 下拉菜單··········································································174
·X·
10.6.2 彈出式菜單·······································································175
10.7 上機實驗···················································································177
10.8 本章小結···················································································177
習題·································································································178
第11 章JDBC 編程··················································································179
11.1 JDBC 概述·················································································179
11.2 JDBC 常用的接口和類··································································180
11.2.1 Driver 類··········································································180
11.2.2 DriverManager 類································································181
11.2.3 Connection 接口·································································183
11.2.4 Statement 接口···································································183
11.2.5 PreparedStatement 接口·························································184
11.2.6 ResultSet 接口····································································185
11.3 JDBC 程序示例···········································································186
11.4 數據庫的基本操作·······································································191
11.5 事務處理···················································································193
11.5.1 事務概述··········································································193
11.5.2 JDBC 處理事務··································································194
11.6 上機實驗···················································································197
11.7 本章小結···················································································197
習題·································································································198
第12 章Java 多線程················································································200
12.1 線程概述···················································································200
12.1.1 進程················································································200
12.1.2 線程················································································201
12.2 創建線程···················································································202
12.2.1 繼承Thread 類···································································202
12.2.2 實現Runnable 接口·····························································205
12.2.3 兩種實現多線程方式的區別··················································206
12.3 Java 中的線程·············································································209
12.3.1 線程的生命周期·································································209
12.3.2 線程調度與優先級······························································214
12.4 線程的同步················································································216
12.4.1 同步代碼塊·······································································216
12.4.2 同步方法··········································································219
12.4.3 死鎖················································································220
12.5 線程交互···················································································224
·XI·
12.6 上機實驗···················································································228
12.7 本章小結···················································································228
習題·································································································228
第13 章網絡編程 ····················································································231
13.1 URL ·························································································231
13.1.1 URL 的構造方法································································231
13.1.2 獲取URL 中的資源····························································232
13.2 InetAddress 類·············································································233
13.3 TCP 網絡編程·············································································235
13.3.1 ServerSocket 類··································································235
13.3.2 Socket 類··········································································237
13.3.3 多線程的TCP 網絡編程·······················································239
13.4 UDP 編程··················································································243
13.4.1 DatagramPacket 類······························································243
13.4.2 DatagramSocket 類······························································244
13.4.3 UDP 網絡編程···································································245
13.5 廣播數據報················································································247
13.6 上機實驗···················································································250
13.7 本章小結···················································································250
習題·································································································250
參考文獻··································································································253