Java編程實戰教程

覃國蓉

  • 出版商: 電子工業
  • 出版日期: 2023-12-01
  • 定價: $354
  • 售價: 8.5$301
  • 語言: 簡體中文
  • 頁數: 308
  • ISBN: 7121469006
  • ISBN-13: 9787121469008
  • 相關分類: Java 程式語言
  • 下單後立即進貨 (約4週~6週)

商品描述

本書對接信息技術的相關崗位需求,主要滿足高等職業教育信息技術類相關專業Java程序設計課程的教學需要,分為Java程序設計基礎(學習Java基礎)、Java面向對象(學習Java面向對象)、Java核心技術實戰(實現多人聊天室系統)和Java實用場景開發(實用場景應用開發)四部分,並通過鴻蒙App開發、多人聊天室系統,以及發送郵件和短信、生成和識別二維碼、識別車牌等具有代表性的實用案例項目來講解Java程序設計基礎、Java面向對象、多線程、集合框架、I/O流、網絡編程、異常處理、GUI等Java核心編程技術。本書提供一系列實踐場景,通過完成編程任務和分析代碼,融入Java編程的概念和技術,幫助學生沉浸式地學習Java核心編程技術。小節根據需要設置【隨堂測試】和【動手練習】環節,用於促進師生互動,提高教與學的效果。支持模塊化教學,可以使教師根據學生基礎和教學目標,選取相關單元進行教學,具有“活頁式”教材的效果。本書體系完整,內容實用,配套資源豐富,既可以作為高等職業教育信息技術類相關專業包括高職和本科學生的學慣用書,也可以作為Java技術愛好者的自學參考用書。

目錄大綱

第一部分 學習Java基礎
單元1 初識Java 2
1.1 任務描述 2
1.2 瞭解什麽是Java 2
1.3 JDK的下載和安裝 3
1.3.1 區分JVM、JRE和JDK 3
1.3.2 下載並安裝JDK 4
1.4 完成並分析第一個Java程序 7
1.4.1 完成第一個Java程序 7
1.4.2 Java代碼的基本格式 8
1.4.3 Java註釋 8
1.4.4 Java程序入口方法main() 9
1.5 IntelliJ IDEA的安裝和配置 10
1.5.1 瞭解什麽是IntelliJ IDEA 10
1.5.2 下載並安裝IDEA 11
1.5.3 在IDEA中配置全局JDK 11
1.5.4 在IDEA中創建Java項目和Java類 13
單元2 掌握Java編程基礎 16
2.1 任務描述 16
2.2 在IDEA中完成一個可以交互的Java程序 16
2.3 Java編程基礎 17
2.3.1 類、對象、方法和實例變量的概念 17
2.3.2 方法的調用 18
2.3.3 數據類型、變量和標識符的使用 19
2.3.4 算術運算符和賦值運算符的使用 21
2.4 初識面向對象 24
2.4.1 構造方法 24
2.4.2 方法的重載 25
2.4.3 類的實例成員和靜態成員 26
2.4.4 final關鍵字 27
單元3 掌握Java的流程控制和數組類型 29
3.1 任務描述 29
3.2 掌握Java的流程控制 29
3.2.1 關系運算符和邏輯運算符 29
3.2.2 if判斷 31
3.2.3 switch多重選擇 33
3.2.4 條件表達式 35
3.2.5 while循環 35
3.2.6 do while循環 37
3.2.7 for循環 37
3.3 掌握Java的數組類型 38
3.3.1 數組變量的定義和初始化 38
3.3.2 查看數組的大小並訪問數組中的元素 39
3.3.3 使用for循環遍歷數組 40
3.3.4 使用for each循環遍歷數組 41
3.3.5 多維數組 42
階段測試:Java編程基礎測試 43
第二部分 學習Java面向對象
單元4 開發一個簡單的鴻蒙App 50
4.1 任務描述 50
4.2 搭建鴻蒙開發環境 50
4.2.1 註冊華為賬號並開通華為雲 50
4.2.2 登錄華為開發者聯盟官網完成實名認證 51
4.2.3 安裝並配置鴻蒙開發環境DevEco Studio 53
4.3 快速開發一個基於Java的鴻蒙App 58
4.3.1 創建一個新的項目 58
4.3.2 啟動模擬器運行程序 59
4.4 掌握Java面向對象的基礎 62
4.4.1 認識鴻蒙App中Java的類和包 62
4.4.2 通過繼承編寫鴻蒙App的Java類 64
4.4.3 通過覆蓋實現App自身的業務邏輯 66
4.4.4 掌握super和this關鍵字 66
單元5 開發一個可以交互的鴻蒙App 68
5.1 任務描述 68
5.2 在佈局文件中添加一個單擊按鈕 69
5.3 添加initiateUI()方法獲得界面組件對象並初始化界面 70
5.3.1 在MainAbilitySlice類中添加數據成員 70
5.3.2 在Java中定義方法的語法 71
5.3.3 添加initiateUI()方法 72
5.4 實現事件監聽者接口處理交互 73
5.4.1 通過添加addListener()方法來處理單擊事件 73
5.4.2 事件監聽者和接口 74
5.4.3 內部類和內部接口 75
5.4.4 類的繼承關系和Object根類 76
5.5 在AbilitySlice類的onStart()方法中調用方法初始化界面並添加事件監聽者 76
5.5.1 在onStart()方法中調用initiateUI()方法和addListener()方法 76
5.5.2 重新啟動模擬器並運行程序 77
5.5.3 匿名內部類 78
5.6 掌握抽象類、接口和Java的單繼承機制 79
階段測試:Java面向對象測試 80
第三部分 實現多人聊天室系統
單元6 準備開發環境 88
6.1 任務描述 88
6.2 掌握Maven的基本使用方法 88
6.2.1 瞭解什麽是Maven 88
6.2.2 下載並安裝Maven 91
6.2.3 配置Maven的本地倉庫位置和中央倉庫鏡像 93
6.2.4 mvn命令的使用 94
6.2.5 在IDEA中配置全局Maven 98
6.3 掌握Git的基本使用方法 99
6.3.1 瞭解什麽是Git 99
6.3.2 下載並安裝Git 100
6.3.3 Git的4個區和5個狀態 100
6.3.4 在本地對源代碼進行基本的版本控制 101
6.3.5 通過遠程版本庫管理源代碼的版本 105
6.3.6 在IDEA中配置全局Git 110
階段測試:使用Maven及Git測試 111
單元7 連接客戶端與服務器端 114
7.1 瞭解多人聊天室系統的需求和本單元任務 114
7.1.1 瞭解多人聊天室系統的需求 114
7.1.2 本單元任務描述及實現思路 115
7.2 編寫聊天服務器的ChatServer類 116
7.2.1 創建ChatServer類 116
7.2.2 創建綁定到指定埠的ServerSocket對象 119
7.2.3 監聽客戶端連接請求 121
7.2.4 獲得socket對象對應的輸入流對象 122
7.2.5 通過調用對象流的readObject()方法來接收客戶端的輸入 124
7.2.6 輸出客戶端進入聊天室的提示信息 125
7.2.7 向客戶端發送歡迎信息 126
7.3 編寫客戶端的ChatClient類 128
7.4 聯合測試ChatServer和ChatClient 131
7.5 編寫支持與多個客戶端交互的ChatChannel類 133
7.5.1 線程的引入 133
7.5.2 編寫ChatChannel類 137
7.6 將版本1代碼托管到碼雲 139
7.6.1 在碼雲上添加一個遠程倉庫 139
7.6.2 在IDEA中創建本地倉庫 140
7.6.3 在IDEA中將代碼提交到本地倉庫 140
7.6.4 在IDEA中建立本地倉庫與遠程倉庫的關聯 142
7.6.5 在IDEA中上傳代碼到碼雲 142
階段測試:網絡編程、I/O流、異常及多線程測試 143
單元8 讓客戶端可以不斷收發消息 145
8.1 本單元的任務描述及實現思路 145
8.1.1 任務描述 145
8.1.2 實現思路 145
8.2 修改服務器端的ChatChannel類 147
8.2.1 使服務器端能不斷接收並轉發客戶端發送的消息 147
8.2.2 抽取ois、oos和name局部變量為成員變量 148
8.2.3 抽取接收用戶姓名並發送歡迎信息的代碼到方法中 150
8.3 修改客戶端的ChatClient類 153
8.3.1 抽取socket、oos、ois、name局部變量為ChatClient類的成員變量 153
8.3.2 在客戶端添加處理接收消息的線程並啟動 154
8.3.3 在客戶端添加處理發送消息的線程並啟動 156
8.3.4 抽取輸入並發送姓名和接收歡迎信息的代碼到方法中 157
8.4 聯合測試並向碼雲提交一個新的版本 161
8.4.1 服務器端與客戶端的聯合測試 161
8.4.2 向碼雲提交一個新的版本 161
單元9 實現群聊和私聊 164
9.1 任務描述 164
9.2 任務1:群聊的實現 164
9.2.1 群聊的實現思路和集合的引入 164
9.2.2 增加一個用static修飾的Map類的allMap成員變量 166
9.2.3 定義一個群發消息給所有客戶端的sendToAll()方法 167
9.2.4 同步allMap和客戶端的變化 167
9.2.5 增加在收到客戶端消息時群發消息的代碼 169
9.2.6 聯合測試群聊 169
9.2.7 選擇文件並提交到碼雲 170
9.3 任務2:私聊的實現 172
9.3.1 私聊的實現思路和String的相關方法 172
9.3.2 定義發送私聊消息的sendSecretMsg()方法 173
9.3.3 解析客戶端發送的消息以區分私聊和群聊 173
9.3.4 聯合測試私聊 175
9.3.5 選擇文件並提交到碼雲 176
階段測試:多線程、字符串、I/O流、異常及集合類測試 178
單元10 提高系統健壯性和用戶體驗 181
10.1 任務描述及實現思路 181
10.2 簡單處理服務器端未啟動:提示後直接退出 182
10.2.1 定位處理位置 182
10.2.2 在處理位置出現提示後直接退出 183
10.2.3 測試客戶端並提交代碼到碼雲 185
10.3 高級處理服務器端未啟動:嘗試不斷連接服務器 186
10.3.1 在ChatClient中定義連接服務器的connect()方法 186
10.3.2 通過調用connect()方法來連接服務器 187
10.3.3 聯合測試並提交到碼雲 188
10.4 簡單處理聊天過程中服務器端宕機:提示後直接退出 189
10.4.1 定位處理位置 189
10.4.2 簡單處理聊天過程中服務器端宕機 190
10.4.3 聯合測試簡單處理並提交代碼到碼雲 193
10.5 高級處理聊天過程中服務器端宕機:嘗試不斷連接服務器 194
10.5.1 在ChatClient中定義重連方法reconnect() 194
10.5.2 高級處理聊天過程中服務器端宕機 195
10.5.3 修改sendNameAndRecvEcho()方法 198
10.5.4 聯合測試高級處理並提交代碼到碼雲 199
階段測試:Java程序設計測試 200
單元11 圖形用戶界面的實現 204
11.1 任務描述及實現思路 204
11.2 實現界面的ClientUI類 206
11.2.1 將界面組件定義成界面ClientUI類的成員變量 206
11.2.2 定義搭建界面的initiateUI()方法並在構造方法中調用 206
11.2.3 使ClientUI類成為事件監聽者 209
11.2.4 定義添加事件監聽者的addListener()方法並在構造方法中調用 211
11.2.5 界面部分單獨測試 214
11.3 完成一個具有圖形界面的客戶端類 215
11.3.1 刪除ChatClient類中發送消息的線程代碼 215
11.3.2 將ClientUI類定義成ChatClient類的內部類 215
11.3.3 改為從圖形用戶界面中輸入姓名 216
11.3.4 在ChatClient類中定義showMessage()方法 216
11.3.5 在ChatClient類中定義send()方法 217
11.3.6 用showMessage()方法替換System.out.println()方法 218
11.4 聯合測試並提交代碼 223
11.4.1 聯合測試 223
11.4.2 提交到碼雲 227
第四部分 實用場景應用開發
單元12 實現發送郵件和發送短信 230
12.1 任務描述 230
12.2 任務1:實現發送郵件 230
12.2.1 JavaMail介紹 230
12.2.2 使用JavaMail發送郵件 231
12.2.3 將發送郵件的代碼封裝到工具類MailUtil中 234
12.3 任務2:實現發送短信 238
12.3.1 阿裡短信服務平臺API介紹 238
12.3.2 使用阿裡短信服務編寫代碼實現發送短信 239
單元13 實現車牌識別系統 245
13.1 任務描述 245
13.2 文字識別開發接口Tesseract OCR和百度AI開放平臺 246
13.2.1 文字識別開發接口Tesseract OCR和Java開發包Tess4J 246
13.2.2 百度AI開放平臺OCR服務 246
13.3 準備測試圖片 246
13.4 使用Tess4J實現車牌識別 247
13.4.1 創建Maven項目chepai並添加相關依賴 247
13.4.2 準備中文字庫 249
13.4.3 編碼實現車牌識別 250
13.4.4 將車牌識別代碼封裝到方法中並測試3個車牌 252
13.5 使用百度AI開放平臺實現車牌識別 255
13.5.1 編碼前的準備 255
13.5.2 調用百度API接口實現車牌識別系統 256
13.5.3 使用GsonFormatPlus生成識別結果的實體類Result 263
13.5.4 定義重載的車牌識別方法 267
13.5.5 使用webcam-capture增加攝像頭抓拍車牌功能 270
單元14 生成和識別二維碼 275
14.1 任務描述 275
14.2 創建Maven項目、添加ZXing相關依賴並創建類 276
14.3 實現生成二維碼圖片 277
14.4 實現識別二維碼 281
14.5 將編碼和解碼封裝到工具類QRCodeUtil中 284
14.6 實現掃碼識別二維碼 287
14.6.1 搭建界面 287
14.6.2 增加一個參數為BufferedImage的識別二維碼的方法 287
14.6.3 定義一個線程不斷捕獲圖片 290