本書以典型案例項目講述面向對象程序設計的相關概念和使用方法,“開發超市購物管理系統、開發校園信息管理系統、開發薪資信息管理系統、開發文件管理程序、開發多線程程序和學生成績管理系統設計與實現”六個項目貫穿始終。每個項目包括任務分析、任務實施、知識解析和任務拓展,內容嚴謹,結構合理,語言深入淺出。
通過本書的學習,學生不僅能夠學習到基本的面向對象程序設計技術,而且能夠掌握利用Java 語言開發軟件項目的方法。本書配套微課視頻講解,掃描二維碼即可查看。本書配有電子課件。
本書可以作為高職高專院校軟件技術類專業、計算機應用技術和網絡技術及相關專業的教材或參考書,也適合軟件開發人員及相關人員作為自學用書或培訓教材。
Java 是一種可以編寫跨平臺應用程序的面向對象的程序設計語言,Java 技術具有卓越的通用性、高效性、平臺移植性和安全性,是一門真正做到“一次編譯,到處運行”的高級語言。多年來,Java 語言一直深受計算機開發者的喜愛,因此無論是學生還是行業技術人員,都熟悉Java 語言。目前,在全球云計算、大數據、移動互聯網迅猛發展的產業環境下,Java 語言更具備了顯著優勢和廣闊前景。
本書作為高職高專計算機類專業學生的特色教材,采用結果前置、后續講解的形式進行內容設計,先將每個項目的運行效果展示給學生,再針對項目中的知識點展開講解,讓學生在學習過程中分析問題、理解問題和解決問題,進而再去總結問題,最后掌握技能。
全書通過“開發超市購物管理系統、開發校園信息管理系統、開發薪資信息管理系統、開發文件管理程序、開發多線程程序和學生成績管理系統設計與實現”六個項目的實現過程,將Java 程序開發的基礎知識融入工作任務中,突出了理論與實踐緊密結合的特點。每個項目開始前先將最終效果展現給讀者,然后再進行內容的解析和知識點的講解,最后再結合配套視頻的學習給讀者耳目一新的感覺,同時也使學習者達到較好的學習效果。教材配套PPT 課件、視頻資源和源文件代碼,讀者可通過掃描二維碼觀看配套視頻、下載源碼文件,通過項目的筆記留白隨時記錄心得體會,并對所掌握的知識能夠做到舉一反三。
本書由黑龍江農業經濟職業學院盧長鵬擔任主編,黑龍江農業經濟職業學院張業男、周敏擔任副主編。其中項目1 由周敏編寫,項目2 中的任務2.1~任務2.3 由孫守梅編寫、任務2.4~任務2.7 由韓芝萍編寫,項目3 中的任務3.1~任務3.4 由趙金利編寫、任務3.5~任務3.11 由翟秋菊編寫,項目4 由盧長鵬編寫,項目5 由張業男編寫,項目6 由黑龍江林業職業技術學院郭鋒編寫。全書由翟秋菊統稿。
本書凝聚了作者多年的教學和實踐經驗,由于水平有限,疏漏之處在所難免,歡迎廣大讀者提出寶貴意見。
編者
無
項目1 開發超市購物管理系統1
項目介紹1
學習目標1
任務1.1 搭建Java 開發環境1
任務分析1
任務實施2
知識解析9
1.1.1 Java 的發展9
1.1.2 Java 語言的特性 10
1.1.3 Java 的實現機制 11
任務1.2 開發系統登錄菜單和主菜單 12
任務分析 12
任務實施 12
代碼說明 13
知識解析 14
1.2.1 源文件的命名規則 14
1.2.2 Java 注釋 14
任務拓展 14
任務1.3 開發購物結算功能 16
任務分析 16
任務實施 16
代碼說明 17
知識解析 17
1.3.1 標識符和關鍵字 17
1.3.2 Java 中的常量 18
1.3.3 Java 中的變量 19
1.3.4 運算符 22
任務拓展 26
任務1.4 開發購物菜單的選擇功能 28
任務分析 28
任務實施28
代碼說明29
知識解析30
1.4.1 if 條件語句30
1.4.2 switch 條件語句33
任務拓展37
任務1.5 升級購物結算功能38
任務分析38
任務實施39
代碼說明40
知識解析41
1.5.1 while 循環41
1.5.2 do…while 循環42
1.5.3 for 循環43
1.5.4 break 和continue 45
1.5.5 循環嵌套46
任務拓展48
任務1.6 開發庫存管理功能50
任務分析50
任務實施51
代碼說明52
知識解析52
1.6.1 聲明數組和創建數組52
1.6.2 數組的初始化53
1.6.3 數組元素的使用53
1.6.4 數組的常見操作53
任務拓展56
任務1.7 開發會員登錄功能58
任務分析58
任務實施58
代碼說明58
知識解析58
1.7.1 創建String 字符串59
1.7.2 String 類的常用方法59
1.7.3 定義StringBuffer 類的對象62
1.7.4 StringBuffer 類的常用方法63
任務拓展65
任務1.8 開發會員注冊功能66
任務分析66
任務實施66
代碼說明67
知識解析 67
1.8.1 方法的定義 67
1.8.2 方法的調用 68
1.8.3 方法的遞歸 69
任務拓展 70
思政園地 72
項目綜合練習 72
項目2 開發校園信息管理系統 74
項目介紹 74
學習目標 74
任務2.1 教師和學生端信息管理 74
任務分析 74
任務實施 75
代碼說明 77
知識解析 78
2.1.1 類與對象 78
2.1.2 屬性和方法 78
2.1.3 類與對象的關系 78
2.1.4 類的定義 79
2.1.5 創建一個類的對象 80
2.1.6 使用對象 80
任務拓展 80
任務2.2 封裝教師類和學生類 82
任務分析 82
任務實施 82
代碼說明 86
知識解析 87
2.2.1 封裝的概念 87
2.2.2 封裝的優勢 87
2.2.3 封裝的步驟 87
2.2.4 封裝屬性的訪問 88
2.2.5 類的訪問修飾符 88
2.2.6 訪問權限 90
2.2.7 static 修飾符 90
任務拓展 91
任務2.3 升級教師類和學生類 92
任務分析 92
任務實施 93
代碼說明 97
知識解析 98
2.3.1 方法的重載98
2.3.2 構造方法99
2.3.3 構造方法的重載 100
2.3.4 this 關鍵字 101
任務拓展 102
任務2.4 優化教師類和學生類 103
任務分析 103
任務實施 103
代碼說明 106
知識解析 107
2.4.1 繼承 107
2.4.2 繼承的特性 108
2.4.3 方法的重寫 108
任務拓展 109
任務2.5 開發管理員類111
任務分析111
任務實施111
代碼說明 115
知識解析 116
2.5.1 抽象類 116
2.5.2 抽象類特點 116
任務拓展 116
任務2.6 開發教學督導功能 117
任務分析 117
任務實施 118
代碼說明 122
知識解析 123
2.6.1 多態 123
2.6.2 多態的實現 123
2.6.3 多態的適用范圍 123
任務拓展 123
任務2.7 開發學生選課功能 125
任務分析 125
任務實施 125
代碼說明 129
知識解析 129
2.7.1 接口 129
2.7.2 接口的特點 130
2.7.3 接口與抽象類的區別 130
任務拓展 130
思政園地 131
項目綜合練習132
項目3 開發薪資信息管理系統133
項目介紹133
學習目標133
任務3.1 實現員工薪資信息存儲133
任務分析133
任務實施134
代碼說明137
知識解析137
3.1.1 Java 集合容器137
3.1.2 集合接口137
任務拓展140
任務3.2 實現員工狀態信息分類功能141
任務分析141
任務實施141
代碼說明143
知識解析143
3.2.1 LinkedList 類143
3.2.2 LinkedList 類常用方法143
任務拓展144
任務3.3 設計離職員工薪資結算功能146
任務分析146
任務實施146
代碼說明147
知識解析147
3.3.1 HashSet 實現類147
3.3.2 泛型148
3.3.3 增強for 型語句格式148
任務拓展148
任務3.4 實現員工查詢信息類149
任務分析149
任務實施150
代碼說明152
知識解析152
3.4.1 Map 集合152
3.4.2 HashMap 映射152
3.4.3 Iterator 迭代器153
任務拓展153
任務3.5 處理計算薪資遇到的問題154
任務分析154
任務實施 155
代碼說明 156
知識解析 156
3.5.1 異常處理機制 156
3.5.2 異常處理的語句結構 157
任務拓展 157
任務3.6 強化員工薪資計算功能 158
任務分析 158
任務實施 159
代碼說明 159
知識解析 160
3.6.1 異常的分類 160
3.6.2 常見的異常類型 160
任務拓展 161
任務3.7 拋出無法處理的問題 163
任務分析 163
任務實施 164
代碼說明 165
知識解析 165
任務拓展 166
任務3.8 完善員工薪資計算程序 167
任務分析 167
任務實施 167
代碼說明 169
知識解析 170
任務拓展 170
任務3.9 搭建員工信息管理程序框架 171
任務分析 171
任務實施 172
代碼說明 173
知識解析 174
3.9.1 Java 數據庫連接(JDBC) 174
3.9.2 數據庫連接字符串 175
任務拓展 175
任務3.10 完善員工信息管理功能 176
任務分析 176
任務實施 177
代碼說明 184
知識解析 186
3.10.1 Connection 接口 186
3.10.2 Statement 接口 186
3.10.3 ResultSet 接口186
任務拓展187
任務3.11 優化員工信息管理功能188
任務分析188
任務實施188
代碼說明191
知識解析191
3.11.1 PreparedStatement 接口191
3.11.2 PreparedStatement 接口常用方法191
任務拓展192
思政園地193
項目綜合練習193
項目4 開發文件管理程序195
項目介紹195
學習目標195
任務4.1 下載并保存網絡圖片195
任務分析195
任務實施195
代碼說明196
知識解析197
4.1.1 URL 類197
4.1.2 URLConnection 類197
4.1.3 流的概念197
4.1.4 流的分類198
4.1.5 字節流198
任務拓展200
任務4.2 復制網絡圖片201
任務分析201
任務實施201
代碼說明202
知識解析202
任務拓展203
任務4.3 利用字符流創建記事本文件205
任務分析205
任務實施205
代碼說明206
知識解析206
4.3.1 字符流常用方法206
4.3.2 FileReader 和FileWriter 類207
任務拓展207
任務4.4 利用字符緩沖流編輯和保存記事本內容 209
任務分析 209
任務實施 209
代碼說明 210
知識解析 210
任務拓展 211
任務4.5 利用數據流讀寫不同類型數據 212
任務分析 212
任務實施 213
代碼說明 215
知識解析 215
4.5.1 DataOutputStream 類 215
4.5.2 DataInputStream 類 216
任務拓展 216
任務4.6 查看目錄文件 217
任務分析 217
任務實施 218
代碼說明 218
知識解析 219
4.6.1 File 類 219
4.6.2 File 類常用方法 219
任務拓展 220
任務4.7 實現文件查找功能 221
任務分析 221
任務實施 221
代碼說明 222
知識解析 224
任務拓展 224
任務4.8 實現文件刪除功能 225
任務分析 225
任務實施 225
代碼說明 226
知識解析 227
4.8.1 delete()方法 227
4.8.2 delete()方法注意事項 227
任務拓展 227
思政園地 228
項目綜合練習 229
項目5 開發多線程程序 230
項目介紹 230
學習目標230
任務5.1 開發積分抽獎功能230
任務分析230
任務實施231
代碼說明233
知識解析234
5.1.1 進程與線程234
5.1.2 線程的創建方式234
5.1.3 線程的生命周期234
5.1.4 線程的調度235
5.1.5 線程同步236
任務拓展237
任務5.2 開發聊天室商品秒殺功能238
任務分析238
任務實施238
代碼說明239
知識解析240
5.2.1 線程池240
5.2.2 線程池的優勢240
5.2.3 線程池處理流程240
5.2.4 線程池的使用240
5.2.5 Callable 和Future 241
任務拓展241
任務5.3 利用TCP 協議實現網絡通信242
任務分析242
任務實施242
代碼說明243
知識解析244
5.3.1 TCP/IP 協議244
5.3.2 IP 地址244
5.3.3 端口(Port)244
5.3.4 TCP 協議244
5.3.5 TCP 通信244
5.3.6 Socket 類244
5.3.7 ServerSocket 類245
任務拓展245
任務5.4 開發多用戶登錄抽獎程序246
任務分析246
任務實施246
代碼說明250
知識解析251
任務拓展 251
任務5.5 利用UDP 協議實現網絡通信 252
任務分析 252
任務實施 253
代碼說明 254
知識解析 254
5.5.1 TCP 協議 254
5.5.2 UDP 協議通信 255
任務拓展 255
任務5.6 完善網絡聊天室功能 256
任務分析 256
任務實施 257
代碼說明 260
知識解析 261
5.6.1 InetAddress 類和InetSocketAddress 類 261
5.6.2 TCP 與UDP 通信的主要區別 261
任務拓展 262
思政園地 263
項目綜合練習 263
項目6 學生成績管理系統設計與實現 265
項目介紹 265
學習目標 265
任務6.1 需求分析與總體設計 265
任務分析 265
任務實施 266
知識解析 266
6.1.1 需求分析 266
6.1.2 需求分析的任務 266
6.1.3 需求分析的過程 267
任務6.2 學生成績管理系統設計與實現 267
任務分析 267
任務實施 268
知識解析 274
6.2.1 軟件系統設計 274
6.2.2 概要設計 274
6.2.3 詳細設計 274
任務6.3 學習成績管理系統測試 275
任務分析 275
任務實施 275
代碼說明 277
知識解析277
6.3.1 軟件測試277
6.3.2 軟件測試的方法277
6.3.3 軟件測試的流程278
任務拓展278
任務6.4 學生成績管理系統打包279
任務分析279
任務實施279
知識解析281
6.4.1 jar 文件281
6.4.2 jar 文件的特點281
參考文獻282