內容簡介
《21天學通Java(第3版)》是
Java語言的入門教程,由淺入深、循序漸進地講授如何使用Java語言進行程式開發。全書內容包括Java開發環境、Java基本語法知識、Java面向對象特點、Java界面開發,以及Java資料庫開發和網路編程開發。為了便於讀者學習,《21天學通Java(第3版)》最後一章對一個完整的學生管理系統進行了分析,具體講解了學生模組,以及其他模組的功能分析。
《21天學通Java(第3版)》旨在為Java語言的初學者和大中專學生提供易於入門,便於全面了解和掌握Java編程技術的教輔資料,同時對有一定經驗的Java編程者和學習者也有一定的參考價值。
《21天學通Java(第3版)》附帶DVD光碟一張,包括超大容量教學視頻、電子教案(PPT)、原始碼、職場面試法寶等。
編輯推薦
“21天學
編程系列”自2009年1月上市以來一直受到廣大讀者的青睞。該系列中的大部分圖書從一上市就登上了編程類圖書銷售排行榜的前列,很多大中專院校也將該系列中的一些圖書作為教材使用,目前這些圖書已經多次印刷、改版。可以說,“21天學編程系列”是自2009年以來國內原創計算機編程圖書最有影響力的品牌之一。
本書有何特色
1.細緻體貼的講解
為了讓讀者更快地上手,本書特別設計了適合初學者的學習方式,用準確的語言總結概念用直觀的圖示演示過程用詳細的注釋解釋代碼用形象的比方幫助記憶。
2.實用超值的DVD光碟
為了幫助讀者比較直觀地學習,本書附帶DVD光碟,內容包括多媒體視頻、電子教案(PPT)和實例原始碼等。
3.提供完善的技術支持
目錄
第一篇 基礎篇
1.1 Java的平台簡介 1
1.2 安裝工具包 2
1.2.1 下載JDK 2
1.2.2 安裝JDK 3
1.2.3 查看與設定環境變數 5
1.2.4 JDK常用命令 7
1.2.5 Java各個目錄含義 8
1.2.6 JDK的幫助檔案 8
1.3 程式開發過程 9
1.4 編碼規範 9
1.5 HelloWorld:第一個Java程式 9
1.5.1 編寫程式代碼 9
1.5.2 編譯程式代碼並運行 10
1.5.3 注意事項 11
1.6 使用Eclipse集成開發工具開發 11
1.7 綜合練習 12
1.8 小結 12
1.9 習題 12
第2章 Java的基本數據類型( 教學視頻:38分鐘) 13
2.1 數據類型 13
2.1.1 整型 13
2.1.2 浮點型 14
2.1.3 字元型(char) 14
2.1.4 布爾型(boolean) 15
2.2 數據類型間的轉換 15
2.2.1 自動轉換 15
2.2.2 強制轉換 16
2.2.3 隱含轉換 16
2.3 標識符的命名 16
2.3.1 標識符的命名規則 16
2.3.2 不好的標識符命名 17
2.3.3 良好的標識符命名 18
2.4 關鍵字 18
2.5 代碼注釋 19
2.5.1 行注釋 19
2.5.2 塊注釋 20
2.5.3 文檔注釋用戶自定義類型 20
2.6 綜合練習 21
2.7 小結 22
2.8 習題 22
第3章 運算符( 教學視頻:56分鐘) 23
3.1 算術運算符 23
3.1.1 “+”:加法運算符 23
3.1.2 “-”:減法運算符 24
3.1.3 “*”:乘法運算符 25
3.1.4 “/”:除法運算符 26
3.1.5 “%”:求余運算符 27
3.2 自增自減運算符 28
3.3 關係運算符 29
3.3.1 “==”、”!=” 30
3.3.2 “>”、”<”、”>=”、”<=” 31
3.4 邏輯運算符 32
3.4.1 “&&”:與運算符 32
3.4.2 “||”:或運算符 32
3.4.3 “!”:非運算符 33
3.4.4 邏輯運算符總結 34
3.5 三元運算符 34
3.6 位運算符 35
3.6.1 “&”:按位與運算符 35
3.6.2 “|”:按位或運算符 36
3.6.3 “^”:按位異或運算符 36
3.7 位移運算符 37
3.7.1 “>>”:帶符號右移運算符 37
3.7.2 “<<”:帶符號左移運算符 38
3.7.3 “>>>”:無符號右移運算符 38
3.8 賦值運算符 39
3.8.1 一般賦值運算符 39
3.8.2 運算賦值運算符 39
3.9 運算符之間的優先權 40
3.10 綜合練習 41
3.11 小結 42
3.12 習題 42
第4章 流程控制( 教學視頻:68分鐘) 44
4.1 if條件語句 44
4.1.1 if語句的語法 44
4.1.2 if語句用法舉例 44
4.2 switch分支語句 47
4.2.1 switch分支語句的語法 47
4.2.2 switch分支語句表達式的使用條件 48
4.2.3 switch分支語句舉例 51
4.3 while循環語句 52
4.3.1 while循環語句的語法 52
4.3.2 while循環語句舉例 53
4.4 do...while循環語句 54
4.4.1 do...while循環語句的語法 54
4.4.2 do ... while循環語句舉例 55
4.5 for循環語句 56
4.5.1 for循環語句的語法 56
4.5.2 用for循環來實現其他循環語句 57
4.5.3 for循環語句的舉例 57
4.6 如何中斷和繼續語句的執行 58
4.6.1 break:中斷語句執行 59
4.6.2 continue:繼續語句執行 59
4.7 綜合練習 60
4.8 小結 61
4.9 習題 61
第5章 數組( 教學視頻:57分鐘) 63
5.1 如何創建數組 63
5.1.1 創建數組 63
5.1.2 創建多維數組 64
5.2 數組的初始化 65
5.2.1 創建並初始數組元素 65
5.2.2 循環初始化 67
5.3 數組操作的舉例 68
5.3.1 數組元素值的複製 68
5.3.2 數組元素的排序 70
5.3.3 在數組裡查找指定元素 72
5.3.4 利用數組列印26個英文字母 73
5.4 綜合練習 74
5.5 小結 75
5.6 習題 75
第二篇 面向對象篇
第6章 類與對象( 教學視頻:85分鐘) 77
6.1 什麼是面向對象 77
6.1.1 面向對象編程的特點 77
6.1.2 面向對象編程與面向過程編程的區別 78
6.2 什麼是類 78
6.2.1 類的定義和對象的創建 78
6.2.2 如何使用現有類 80
6.2.3 類設計的技巧 81
6.3 成員變數 82
6.3.1 成員變數的創建 82
6.3.2 成員變數的初始化 83
6.4 局部變數 86
6.4.1 局部變數的創建和初始化 86
6.4.2 局部變數和成員變數的區別 87
6.5 方法 88
6.5.1 方法的創建和參數 88
6.5.2 方法參數的傳遞 90
6.6 對象引用的使用 91
6.6.1 調用不存在的對象或成員變數 92
6.6.2 調用對象為null值的引用 93
6.6.3 對象引用間的比較 94
6.7 this 95
6.8 要活用JDK已有的類 96
6.8.1 Date類 96
6.8.2 Integer類 98
6.9 綜合練習 99
6.10 小結 100
6.11 習題 100
第7章 控制邏輯( 教學視頻:46分鐘) 101
7.1 包(package) 101
7.1.1 創建包 101
7.1.2 如何使用包 102
7.1.3 什麼是靜態引入 103
7.2 類的訪問級別 104
7.2.1 公開的訪問級別 104
7.2.2 默認的訪問級別 105
7.3 什麼是封裝 106
7.4 最終修飾符 108
7.4.1 final修飾對象類型的成員變數 108
7.4.2 final修飾基本類型的成員變數 110
7.4.3 final修飾的局部變數 112
7.4.4 final修飾的方法 113
7.5 靜態修飾符 115
7.5.1 什麼是靜態變數 115
7.5.2 靜態變數的訪問 116
7.5.3 什麼是靜態常量 118
7.6 綜合練習 120
7.7 小結 121
7.8 習題 121
第8章 繼承( 教學視頻:87分鐘) 122
8.1 什麼是繼承 122
8.1.1 類的繼承 123
8.1.2 繼承的語法 126
8.2 修飾符 127
8.2.1 public:聲明成員變數為公共類型 127
8.2.2 private:聲明成員變數為私有類型 128
8.2.3 default:聲明成員變數為默認類型 129
8.2.4 protected:聲明成員變數為保護類型 130
8.3 成員變數的覆蓋 131
8.4 對象引用 132
8.5 方法的重寫和重載 133
8.5.1 方法重寫的特點 133
8.5.2 方法重載的特點 135
8.5.3 重寫的返回類型 138
8.5.4 重寫是基於繼承的 140
8.5.5 靜態方法是不能重寫的 141
8.5.6 三者之間的關係 143
8.5.7 重寫toString方法 143
8.5.8 重寫equals方法 144
8.6 final與繼承的關係 146
8.7 abstract與繼承的關係 147
8.8 什麼是多態 148
8.9 什麼是枚舉類 149
8.10 什麼是反射機制 151
8.11 什麼是泛型 152
8.12 綜合練習 153
8.13 小結 154
8.14 習題 154
第9章 接口( 教學視頻:43分鐘) 155
9.1 什麼是接口 155
9.1.1 接口的定義 155
9.1.2 訪問接口裡的常量 157
9.2 接口的使用 158
9.2.1 接口裡的方法如何創建 158
9.2.2 接口引用怎么使用 159
9.3 什麼是抽象類 161
9.3.1 抽象類的使用和特點 161
9.3.2 抽象類與接口區別 164
9.4 接口的多態 164
9.5 判斷類型 166
9.5.1 什麼是instanceof 166
9.5.2 使用instanceof的注意事項 169
9.6 綜合練習 170
9.7 小結 170
9.8 習題 170
第10章 構造器( 教學視頻:64分鐘) 171
10.1 什麼是構造器 171
10.1.1 構造器的使用 171
10.1.2 被修飾的構造器 173
10.1.3 構造器方法與普通方法的區別 176
10.2 如何實例化一個對象 177
10.3 構造器的使用 179
10.3.1 構造器的調用 179
10.3.2 構造器重載 183
10.3.3 父子類間的構造器的調用流程 185
10.3.4 如何自定義構造器 188
10.4 什麼是單子模式 189
10.5 構造器在程式中是何時運行的 192
10.6 綜合練習 195
10.7 小結 196
10.8 習題 197
第11章 異常處理( 教學視頻:43分鐘) 198
11.1 異常處理基本介紹 198
11.1.1 try和catch捕獲異常 198
11.1.2 try…catch語句使用注意點 199
11.1.3 finally語句的使用 201
11.1.4 再談異常處理注意點 203
11.2 異常的分類 204
11.2.1 捕獲異常 204
11.2.2 未捕獲異常 205
11.3 拋出異常 206
11.3.1 拋出異常的簡單介紹 206
11.3.2 使用throws和throw語句拋出異常 207
11.4 自定義異常 208
11.4.1 創建和使用自定義異常類 208
11.4.2 自定義異常的實際套用 209
11.5 綜合練習 212
11.6 小結 213
11.7 習題 213
第12章 內部類( 教學視頻:67分鐘) 214
12.1 非靜態內部類 214
12.1.1 創建非靜態內部類 214
12.1.2 在外部類中訪問內部類 215
12.1.3 在外部類外訪問內部類 216
12.1.4 在內部類中訪問外部類 217
12.2 局部內部類 220
12.2.1 創建局部內部類 220
12.2.2 在局部內部類中訪問外部類成員變數 221
12.2.3 在局部內部類中訪問外部類的局部變數 222
12.2.4 靜態方法中的局部內部類 223
12.3 靜態內部類 225
12.3.1 創建靜態內部類 225
12.3.2 在外部類中訪問靜態內部類 226
12.3.3 在外部類外訪問靜態內部類 226
12.4 匿名內部類 227
12.4.1 創建匿名內部類 227
12.4.2 匿名內部類的初始化 229
12.5 綜合練習 230
12.6 小結 231
12.7 習題 231
第13章 多 線 程( 教學視頻:41分鐘) 232
13.1 多執行緒簡介 232
13.2 定義執行緒和創建執行緒對象 232
13.2.1 繼承Thread類定義執行緒 232
13.2.2 實現Runnable接口定義執行緒 233
13.3 運行執行緒 234
13.3.1 啟動執行緒 234
13.3.2 同時運行多個執行緒 236
13.4 執行緒生命周期 237
13.4.1 新建狀態 237
13.4.2 準備狀態 237
13.4.3 運行狀態 238
13.4.4 等待/阻塞狀態 238
13.4.5 死亡狀態 238
13.5 執行緒的調度 238
13.5.1 睡眠方法 238
13.5.2 執行緒優先權 240
13.5.3 yield讓步方法 241
13.5.4 join讓步方法 243
13.6 綜合練習 244
13.7 小結 246
13.8 習題 246
第三篇 套用篇
第14章 Swing桌面程式開發( 教學視頻:68分鐘) 248
14.1 開發第一個Swing程式 248
14.2 JFrame視窗類 249
14.2.1 JFrame視窗類簡介 249
14.2.2 創建簡單窗體 250
14.2.3 設定窗體 251
14.3 JPanel面板類 254
14.3.1 容器介紹 254
14.3.2 JPanel面板類簡介 254
14.3.3 創建面板 254
14.4 JLabel標籤類 255
14.4.1 JLabel標籤類簡介 255
14.4.2 創建標籤 256
14.5 JButton按鈕類 257
14.5.1 JButton按鈕類簡介 257
14.5.2 創建按鈕 258
14.5.3 按鈕動作事件 258
14.6 Swing中的事件 261
14.6.1 事件簡介 261
14.6.2 同一個事件源註冊多個監聽器 261
14.6.3 同一個監聽器註冊給多個事件源 263
14.6.4 窗體獲取和失去焦點事件 264
14.6.5 窗體打開、關閉和激活事件 265
14.7 綜合練習 267
14.8 小結 269
14.9 習題 269
第15章 嵌入式系統開發概述( 教學視頻:52分鐘) 271
15.1 流布局 271
15.1.1 流布局介紹 271
15.1.2 使用流布局 272
15.2 格線布局 274
15.2.1 格線布局介紹 274
15.2.2 使用格線布局 274
15.3 框線布局 277
15.3.1 框線布局介紹 277
15.3.2 使用框線布局 277
15.4 空布局 279
15.4.1 空布局介紹 279
15.4.2 使用空布局 279
15.5 卡片布局 280
15.5.1 卡片布局介紹 280
15.5.2 使用卡片布局 281
15.6 綜合練習 283
15.7 小結 285
15.8 習題 285
第16章 Swing常用控制項( 教學視頻:50分鐘) 287
16.1 文本框及密碼框和多行文本框 287
16.1.1 創建文本框 287
16.1.2 創建密碼框 288
16.1.3 創建多行文本框 290
16.2 複選框和單選按鈕 291
16.2.1 創建單選按鈕 291
16.2.2 創建複選框 294
16.3 選項卡 295
16.3.1 選項卡介紹 296
16.3.2 創建選項卡 296
16.4 分隔窗格 298
16.4.1 分隔窗格介紹 298
16.4.2 創建分隔窗格 299
16.5 滑塊和進度條 300
16.5.1 創建滑塊 300
16.5.2 創建進度條 302
16.6 列表框 304
16.6.1 列表框介紹 305
16.6.2 創建列表框 306
16.6.3 下拉列表框 307
16.7 選單 309
16.7.1 選單介紹 310
16.7.2 創建選單 310
16.7.3 創建彈出式選單 311
16.8 綜合練習 312
16.9 小結 314
16.10 習題 314
第17章 JDBC資料庫編程( 教學視頻:40分鐘) 316
17.1 資料庫基本介紹 316
17.1.1 資料庫介紹 316
17.1.2 資料庫套用架構 316
17.1.3 資料庫模型 317
17.2 JDBC資料庫編程介紹 317
17.2.1 JDBC和ODBC的關係 318
17.2.2 為什麼使用JDBC資料庫編程 318
17.3 SQL資料庫操作技術 318
17.3.1 什麼是SQL 319
17.3.2 如何進行SQL操作 319
17.4 創建資料庫 320
17.4.1 創建Access資料庫 320
17.4.2 創建SQL Server資料庫 320
17.5 JDBC編程步驟 323
17.5.1 創建數據源 323
17.5.2 載入驅動程式 326
17.5.3 建立資料庫連線 326
17.5.4 進行資料庫操作 327
17.5.5 獲取資料庫中信息 328
17.5.6 JDBC資料庫編程實例 329
17.6 事務處理 330
17.6.1 事務介紹 330
17.6.2 進行事務操作 331
17.7 綜合練習 333
17.8 小結 333
17.9 習題 333
第18章 Java中輸入/輸出流( 教學視頻:33分鐘) 335
18.1 I/O流簡介 335
18.1.1 什麼是I/O流 335
18.1.2 節點流與處理流 335
18.1.3 位元組流與字元流 336
18.1.4 抽象基類 336
18.2 使用流進行檔案操作 338
18.2.1 使用File類進行檔案與目錄操作 338
18.2.2 FileInputStream類與FileOutputStream類 341
18.2.3 FileReader類與FileWriter類 345
18.3 綜合練習 346
18.4 小結 346
18.5 習題 347
第19章 集合框架( 教學視頻:55分鐘) 348
19.1 集合框架總論 348
19.1.1 什麼是集合框架 348
19.1.2 Collection接口 348
19.2 列表 349
19.2.1 List列表接口 349
19.2.2 Vector類 350
19.2.3 ArrayList類 353
19.2.4 LinkedList類 356
19.3 集合 358
19.3.1 Set接口 359
19.3.2 SortedSet接口 360
19.3.3 TreeSet類 360
19.3.4 HashSet類 362
19.4 映射 363
19.4.1 Map接口 364
19.4.2 HashMap類 364
19.4.3 TreeMap類 367
19.5 綜合練習 368
19.6 小結 370
19.7 習題 370
第20章 網路編程( 教學視頻:32分鐘) 371
20.1 網路編程基礎 371
20.1.1 TCP/IP協定 371
20.1.2 網路編程模型 371
20.1.3 網路傳輸協定 372
20.1.4 連線埠和套接字 372
20.2 基於TCP/IP協定的網路編程 372
20.2.1 Socket套接字 373
20.2.2 ServerSocket類 373
20.2.3 Socket類 374
20.2.4 網路編程C/S架構實例 375
20.3 綜合練習 378
20.4 小結 380
20.5 習題 380
第四篇 綜合案例篇
第21章 學生管理系統( 教學視頻:26分鐘) 381
21.1 系統設計 381
21.2 資料庫設計 381
21.3 登錄界面開發 381
21.3.1 界面設計 382
21.3.2 程式開發 382
21.4 學生界面開發 384
21.4.1 界面設計 384
21.4.2 程式開發 384
21.4.3 開發插入學生界面 385
21.4.4 查詢學生信息界面 388
21.4.5 查詢成績信息 391
21.5 綜合練習 395
21.6 小結 395
前言
“21天學編程系列”自2009年1月上市以來一直受到了廣大讀者的青睞。該系列中的大部分圖書從一上市就登上了編程類圖書銷售排行榜的前列,很多大中專院校也將該系列中的一些圖書作為教材使用,目前這些圖書已經多次印刷、改版。可以說,“21天學編程系列”是自2009年以來國內原創計算機編程圖書最有影響力的品牌之一。
為了使該系列圖書能緊跟技術和教學的發展,更加適合讀者學習和學校教學,我們結合最新技術和讀者的建議,對該系列圖書進行了改版(即第3版)。本書便是該系列中的Java分冊。
本書有何特色
1.細緻體貼的講解
為了讓讀者更快上手,本書特別設計了適合初學者的學習方式,用準確的語言總結概念用直觀的圖示演示過程用詳細的注釋解釋代碼用形象的比喻幫助記憶。效果如下圖所示。
知識點介紹 準確、清晰是其顯著特點,一般放在每一節開始的位置,讓零基礎的讀者了解相關概念,順利入門。
範例 書中出現的完整實例,以章節順序編號,便於檢索和循序漸進地學習、實踐,放在每節知識點介紹之後。
示例代碼 與範例編號對應,層次清楚、語句簡潔、注釋豐富,體現了代碼優美的原則,有利於讀者養成良好的代碼編寫習慣。對於大段程式,均在每行代碼前設定編號便於學習。
運行結果 對範例給出運行結果和對應圖示,幫助讀者更直觀地理解示例代碼。
代碼解析 將示例代碼中的關鍵代碼行逐一解釋,有助於讀者掌握相關概念和知識。
習題 每章最後提供專門的測試習題,供讀者檢驗所學知識是否牢固掌握,題目的提示或答案放在光碟中。
貼心的提示 為了便於讀者閱讀,全書還穿插著一些技巧、提示等小貼士,體例約定如下。
提示:通常是一些貼心的提醒,讓讀者加深印象或提供建議,或者解決問題的方法。
注意:提出學習過程中需要特別注意的一些知識點和內容,或者相關信息。
警告:對操作不當或理解偏差將會造成的災難性後果給出警示,以加深讀者印象。
經作者多年的培訓和授課證明,以上講解方式是最適合初學者學習的方式,讀者按照這種方式學習,會非常輕鬆、順利地掌握本書知識。
2.實用超值的DVD光碟
為了幫助讀者比較直觀地學習,本書附帶DVD光碟,內容包括多媒體視頻、電子教案(PPT)、實例原始碼等。
多媒體視頻
本書配有長達18小時的教學視頻,講解關鍵知識點界面操作和書中的一些綜合練習題。作者親自配音、演示,手把手教會讀者使用。
電子教案(PPT)
本書可以作為高校相關課程的教材或課外輔導書,所以作者特別為本書製作了電子教案(PPT),以方便老師教學使用。
職場面試法寶
本書附贈“職場面試法寶”,含常見的職場經典故事及測試題。
3.提供完善的技術支持
本書的技術支持論壇,讀者可以在上面提問交流。另外,論壇上還有一些小的教程、視頻動畫和各種技術文章,可幫助讀者提高開發水平。
推薦的學習計畫
本書作者在長期從事相關培訓或教學實踐過程中,歸納了最適合初學者的學習模式,並參考了多位專家的意見,為讀者總結了合理的學習時間分配方式,列表如下。
本書適合哪些讀者閱讀
本書非常適合以下人員閱讀:
從未接觸過Java編程的自學人員。
了解一些Java,但還需要進一步學習的人員。
各大中專院校的在校學生和相關授課老師。
其他編程愛好者。
本書主要由陳雲婷編寫。其他參與編寫的人員有張燕、杜海梅、孟春燕、吳金艷、鮑凱、龐雁豪、楊銳麗、鮑潔、王小龍、李亞傑、張彥梅、劉媛媛、李亞偉、張昆(筆名:張增強),在此一併表示感謝。