從零開始學Java(第3版)

從零開始學Java(第3版)

《從零開始學Java(第3版)》 一書由郭現傑、張權編著,電子工業出版社2017年1月出版

內容提要

從零開始學Java(第3版) 從零開始學Java(第3版)

《從零開始學Java(第3版)》針對初學和自學讀者的特點,以通俗易懂的語言講解Java 語言編程。《從零開始學Java(第3版)》內容分為六篇共23章,講解了Java的各個方面,主要內容包括Java 語言的環境配置、基本語法、流程控制語句、字元串處理、數組、面向對象、圖形界面設計、輸入/輸出、異常處理、網路編程、資料庫及Java Web基礎JSP 和Servlet。最後通過一個大型項目——教務管理系統貫穿所有所學知識點,讓讀者更好地掌握Java 語言編程開發。

《從零開始學Java(第3版)》包含大量實例,讓讀者在實戰中體會編程的快樂。為方便讀者學習,《從零開始學Java(第3版)》附帶大容量資源包,其中包含書中用到的所有實例代碼、配套PPT 教案及視頻教程。建議讀者邊學邊練,可快速提高單獨開發項目的能力。《從零開始學Java(第3版)》適合想從事軟體開發的入門人員、Java 自學者及初級軟體程式設計師與信息技術人員閱讀。

目錄

第一篇 Java 基礎

第1 章 第一個Java 程式——HelloWorld ( 教學視頻:14 分鐘) 1

1.1 Java 語言簡介 1

1.1.1 Java 語言的歷史 1

1.1.2 Java 語言的優點 2

1.1.3 發展前景 2

1.2 工作原理 3

1.2.1 Java 虛擬機(JVM) 3

1.2.2 無用記憶體自動回收機制 4

1.2.3 代碼安全性檢查機制 4

1.3 搭建Java 程式開發環境 4

1.3.1 系統要求 4

1.3.2 下載Java 程式開發工具包JDK4

1.3.3 安裝JDK5

1.3.4 在Windows 系統下配置JDK7

1.4 開發第一個Java 應用程式 9

1.4.1 Eclipse 編寫HelloWorld9

1.4.2 源檔案與命令行執行HelloWorld12

1.4.3 Java 應用程式的基本結構 14

1.5 典型實例 14

第2 章 Java 變數、數據類型、運算符( 教學視頻:20 分鐘) 15

2.1 標識符和關鍵字 15

2.1.1 標識符 15

2.1.2 標識符命名規則 15

2.1.3 關鍵字 15

2.2 常量與變數 16

2.2.1 常量概念及聲明 16

2.2.2 枚舉類型 16

2.2.3 變數概念及聲明 17

2.2.4 變數的作用域 18

2.3 基本數據類型 19

2.3.1 整型 19

2.3.2 浮點型 20

2.3.3 布爾型 20

2.3.4 字元型 20

2.3.5 數據類型轉換 21

2.4 運算符 22

2.4.1 算術運算符 23

2.4.2 賦值運算符 23

2.4.3 關係運算符 24

2.4.4 邏輯運算符 24

2.4.5 位運算符 25

2.4.6 自增自減運算符 27

2.4.7 三元運算符 28

2.4.8 運算符的優先權 28

2.5 典型實例 29

第3 章 數組( 教學視頻:25 分鐘) 34

3.1 數組的概念 34

3.1.1 什麼是數組 34

3.1.2 數組的特點 34

3.1.3 數組的規則 34

3.2 一維數組 35

3.2.1 聲明一維數組 35

3.2.2 初始化一維數組 35

3.2.3 訪問一維數組 36

3.2.4 修改一維數組元素 36

3.3 數組的常用操作 37

3.3.1 數組長度 37

3.3.2 數組填充 37

3.3.3 數組複製 38

3.3.4 數組比較 38

3.3.5 數組排序 39

3.3.6 在數組中搜尋指定元素 40

3.3.7 把數組轉換為字元串 40

3.4 多維數組 41

3.4.1 聲明二維數組 41

3.4.2 創建二維數組 41

3.4.3 訪問二維數組 42

3.4.4 遍歷二維數組 42

3.5 典型實例 43

第4 章 條件結構和循環結構

( 教學視頻:23 分鐘) 51

4.1 條件結構 51

4.1.1 if 語句 51

4.1.2 if-else 語句 52

4.1.3 if-else-if 語句 53

4.1.4 選擇語句的嵌套 54

4.1.5 switch 語句 55

4.1.6 if 與switch 的區別 56

4.2 循環結構 56

4.2.1 while 循環語句 56

4.2.2 do-while 循環語句 57

4.2.3 while 與do-while 的區別 58

4.2.4 for 循環語句 59

4.2.5 嵌套循環語句 60

4.3 跳轉語句 62

4.3.1 break 跳轉語句 62

4.3.2 continue 跳轉語句 62

4.3.3 break 與continue 的區別 63

4.3.4 return 跳轉語句 64

4.4 典型實例 64

第5 章 字元串處理( 教學視頻:25 分鐘) 70

5.1 字元 70

5.2 字元串 71

5.2.1 字元串聲明與賦值 71

5.2.2 獲取字元串長度 72

5.3 字元串基本操作 72

5.3.1 字元串連線 72

5.3.2 字元串比較 73

5.3.3 字元串截取 74

5.3.4 字元串查找 74

5.3.5 字元串替換 75

5.3.6 字元串與字元數組 75

5.3.7 字元串其他常用操作 76

5.4 StringBuffer 類 77

5.4.1 認識StringBuffer 類 77

5.4.2 StringBuffer 類提供的操作方法 77

5.4.3 StringBuffer 實例 77

5.4.4 String 類與StringBuffer 類對比 78

5.5 典型實例 78

第二篇 Java 面向對象

第6 章 面向對象( 教學視頻:30 分鐘) 82

6.1 面向對象編程簡介 82

6.1.1 類 82

6.1.2 對象 82

6.1.3 繼承 83

6.1.4 接口 84

6.1.5 包 84

6.2 類 84

6.2.1 基本結構 84

6.2.2 類變數 86

6.2.3 類方法 86

6.2.4 類方法命名 87

6.2.5 調用類方法 87

6.2.6 方法重載 88

6.2.7 構造方法 88

6.2.8 方法返回值 89

6.3 抽象類和抽象方法 89

6.3.1 抽象類 89

6.3.2 抽象類實例 89

6.3.3 抽象類的類成員 90

6.3.4 抽象方法 91

6.3.5 抽象類與接口對比 91

6.4 嵌套類 91

6.4.1 嵌套類定義 91

6.4.2 內部類 92

6.4.3 靜態嵌套類 92

6.5 對象 92

6.5.1 對象實例 92

6.5.2 創建對象 94

6.5.3 使用對象 96

6.6 this、static、final 關鍵字 96

6.6.1 this 關鍵字 96

6.6.2 static 關鍵字 97

6.6.3 final 關鍵字 97

6.7 控制對類的成員的訪問 97

6.8 標註 98

6.8.1 標註用法 98

6.8.2 文檔標註 98

6.9 典型實例 99

第7 章 繼承( 教學視頻:20 分鐘) 104

7.1 繼承概述 104

7.1.1 什麼是繼承 104

7.1.2 類的層次 105

7.1.3 繼承示例 105

7.1.4 繼承優點 106

7.2 對象類型轉換 106

7.2.1 隱式對象類型轉換 106

7.2.2 強制對象類型轉換 107

7.2.3 使用instanceof 運算符 107

7.3 重寫和隱藏父類方法 107

7.3.1 重寫父類中的方法 108

7.3.2 隱藏父類中的方法 108

7.3.3 方法重寫和方法隱藏後的修飾符109

7.3.4 總結 109

7.4 隱藏父類中的欄位 110

7.5 子類訪問父類成員 111

7.5.1 子類訪問父類私有成員 111

7.5.2 使用super 調用父類中重寫的方法 112

7.5.3 使用super 訪問父類中被隱藏的欄位 112

7.5.4 使用super 調用父類的無參構造方法 113

7.5.5 使用super 調用父類的帶參構造方法 114

7.5.6 構造方法鏈 115

7.6 Object 類 116

7.7 典型實例 116

第8 章 接口和包( 教學視頻:16 分鐘) 121

8.1 接口的概念 121

8.1.1 為什麼使用接口 121

8.1.2 Java 中的接口 121

8.1.3 作為API 的接口 122

8.1.4 接口和多繼承 122

8.1.5 Java 接口與Java 抽象類的區別 122

8.2 定義接口 123

8.2.1 聲明接口 123

8.2.2 接口體 124

8.3 實現接口 124

8.3.1 接口的實現 124

8.3.2 接口示例 125

8.3.3 接口的繼承 125

8.3.4 實現多個接口時的常量和方法衝突問題 125

8.4 包 127

8.4.1 包的概念 127

8.4.2 創建包 127

8.4.3 包命名慣例 127

8.4.4 導入包 128

8.5 典型實例 128

第9 章 集合( 教學視頻:17 分鐘) 133

9.1 Java 集合框架 133

9.2 Collection 接口 133

9.2.1 轉換構造方法 133

9.2.2 Collection 接口的定義 133

9.2.3 Collection 接口的基本操作 134

9.2.4 遍歷Collection 接口 134

9.2.5 Collection 接口的批量操作 135

9.2.6 Collection 接口的數組操作 135

9.3 Set 接口 136

9.3.1 Set 接口的定義 136

9.3.2 Set 接口的基本操作 137

9.3.3 Set 接口的批量操作 138

9.3.4 Set 接口的數組操作 139

9.4 List 接口 139

9.4.1 List 接口的定義 139

9.4.2 從Collection 繼承的操作 139

9.4.3 按位置訪問和查找操作 140

9.4.4 List 疊代方法 141

9.5 Map 接口 142

9.5.1 Map 接口的定義 142

9.5.2 Map 接口的基本操作 143

9.5.3 Map 接口的批量操作 144

9.6 實現 144

9.6.1 實現的類型 144

9.6.2 Set 接口的實現 145

9.6.3 List 接口的實現 146

9.6.4 Map 接口的實現 146

9.7 典型實例 147

第三篇 Swing

第10 章 第一個圖形界面應用程式( 教學視頻:12 分鐘) 157

10.1 Swing 簡介 157

10.1.1 Swing157

10.1.2 Swing 特點 157

10.2 創建第一個圖形界面程式 158

10.3 Swing 頂層容器 159

10.3.1 Swing 中的頂層容器類 159

10.3.2 容器層 161

10.3.3 組件使用 161

10.3.4 添加選單欄 162

10.3.5 根面板 162

10.4 JFrame 類創建圖形界面窗體 162

10.4.1 創建窗體 162

10.4.2 創建窗體示例 163

10.4.3 設定視窗 164

10.4.4 視窗關閉事件 165

10.4.5 窗體API166

10.5 典型實例 167

第11 章 Swing 組件( 教學視頻:24 分鐘) 171

11.1 JComponent 類 171

11.2 常用基本組件 172

11.2.1 按鈕組件JButton172

11.2.2 複選框組件JCheckBox172

11.2.3 單選按鈕組件JRadioButton173

11.2.4 文本框組件JTextField173

11.2.5 密碼框組件JPasswordField173

11.2.6 組合框組件JComboBox173

11.2.7 滑塊組件JSlider174

11.2.8 微調組制組件JSpinner174

11.2.9 選單組件JMenu174

11.3 不可編輯的信息顯示組件 175

11.3.1 標籤組件JLabel175

11.3.2 進度條組件JProgressBar175

11.3.3 工具提示組件JToolTip175

11.4 Swing 高級組件 176

11.4.1 顏色選擇器JColorChooser176

11.4.2 檔案選擇器JFileChooser176

11.4.3 文本編輯組件JEditorPane 和JTextPane177

11.4.4 文本區組件JTextArea178

11.4.5 表組件JTable178

11.4.6 樹組件JTree179

11.4.7 面板組件JPanel180

11.4.8 滾動面板JScrollPane180

11.4.9 分割面板JSplitPane181

11.4.10 選項卡面板JTabbedPane181

11.4.11 工具列JToolBar182

11.5 典型實例 182

第12 章 標準布局( 教學視頻:18 分鐘) 189

12.1 標準布局管理器簡介 189

12.1.1 BorderLayout 框線布局 189

12.1.2 BoxLayout 布局 189

12.1.3 CardLayout 卡片布局 190

12.1.4 FlowLayout 流動布局 191

12.1.5 GridLayout 格線布局 191

12.1.6 GridBagLayout 格線包布局 191

12.2 布局管理器的使用 192

12.2.1 使用BorderLayout192

12.2.2 使用BoxLayout193

12.2.3 使用CardLayout193

12.2.4 使用FlowLayout194

12.2.5 使用GridLayout194

12.2.6 使用GridbagLayout194

12.3 使用布局管理器技巧 195

12.3.1 設定布局管理器 195

12.3.2 向容器中添加組件 196

12.3.3 提供組件大小和排列策略 196

12.3.4 設定組件之間的間隙 196

12.3.5 設定容器的語言方向 196

12.3.6 選擇布局管理器 197

12.4 典型實例 198

第13 章 事件處理( 教學視頻:13 分鐘) 205

13.1 事件處理原理 205

13.1.1 事件處理模型 205

13.1.2 事件類型 206

13.1.3 監聽器類型 207

13.2 動作事件 208

13.2.1 動作事件步驟 208

13.2.2 動作事件過程 208

13.2.3 按鈕觸發動作事件 209

13.2.4 文本框觸發事件 210

13.3 選項事件 211

13.3.1 選項事件步驟 211

13.3.2 選項事件過程 212

13.4 列表選擇事件 212

13.4.1 列表事件步驟 212

13.4.2 列表事件過程 212

13.5 焦點事件 213

13.5.1 焦點事件步驟 213

13.5.2 焦點事件過程 213

13.6 鍵盤事件 214

13.6.1 鍵盤事件步驟 214

13.6.2 處理鍵盤過程 214

13.7 滑鼠事件 215

13.7.1 滑鼠事件步驟 215

13.7.2 滑鼠事件過程 215

13.8 滑鼠移動事件 216

13.8.1 滑鼠移動事件步驟 216

13.8.2 滑鼠移動事件過程 216

13.9 典型實例 217

第四篇 Java 編程技術

第14 章 異常處理( 教學視頻:16 分鐘) 223

14.1 Java 異常 223

14.1.1 編譯錯誤 223

14.1.2 運行錯誤 223

14.1.3 邏輯錯誤 224

14.1.4 異常處理機制 225

14.1.5 異常處理類 225

14.1.6 異常處理原則 227

14.2 處理異常 227

14.2.1 try-catch 語句 228

14.2.2 多個catch 子句 228

14.2.3 finally 子句 229

14.2.4 可嵌入的try 塊 229

14.3 拋出異常 230

14.3.1 使用throws 拋出異常 230

14.3.2 使用throw 拋出異常 231

14.3.3 異常類常用方法 232

14.4 自定義異常 232

14.4.1 創建自定義異常類 232

14.4.2 處理自定義異常 232

14.5 典型實例 233

第15 章 輸入與輸出( 教學視頻:14 分鐘) 235

15.1 流 235

15.1.1 流的概念 235

15.1.2 輸入流與輸出流 236

15.1.3 位元組流與字元流 237

15.2 位元組流 237

15.2.1 InputStream 類與OutputStream 類 237

15.2.2 FileInputStream 類與FileOutputStream 類 238

15.2.3 BufferedInputStream 類與BufferedOutputStream 類 239

15.3 字元流 240

15.3.1 Reader 類和Writer 類 240

15.3.2 FileReader 類和FileWriter 類 240

15.3.3 BufferedReader 類和BufferedWriter 類 242

15.3.4 PrintStream 類和PrintWriter 類 243

15.4 實現用戶輸入 243

15.4.1 使用System.in 獲取用戶輸入 243

15.4.2 使用Scanner 類獲取用戶輸入 244

15.5 典型實例 244

第16 章 執行緒( 教學視頻:18 分鐘) 251

16.1 執行緒概念 251

16.1.1 執行緒的屬性 251

16.1.2 執行緒的組成 252

16.1.3 執行緒的工作原理 252

16.1.4 執行緒的狀態 253

16.1.5 執行緒的優先權 253

16.1.6 進程的概念 253

16.1.7 執行緒和進程的區別 254

16.2 執行緒對象 254

16.2.1 執行緒對象和執行緒的區別 254

16.2.2 定義並啟動一個執行緒 255

16.2.3 使用Sleep 暫停執行緒執行 255

16.2.4 中斷執行緒 256

16.2.5 join 方法 256

16.2.6 死鎖 257

16.3 執行緒同步 257

16.3.1 同步方法 257

16.3.2 固定鎖和同步 258

16.4 典型實例 259

第17 章 網路編程( 教學視頻:8 分鐘) 262

17.1 網路編程基礎 262

17.1.1 什麼是TCP 協定 262

17.1.2 什麼是IP 協定 262

17.1.3 什麼是TCP/IP263

17.1.4 什麼是UDP 協定 263

17.1.5 什麼是連線埠 263

17.1.6 什麼是套接字 263

17.1.7 java.net 包 263

17.2 InetAddress 類 264

17.3 URL 網路編程 265

17.3.1 URL265

17.3.2 標識符語法 266

17.3.3 URLConnection 類 266

17.4 TCP 的網路編程 267

17.4.1 Socket267

17.4.2 重要的Socket API268

17.4.3 伺服器端程式設計 268

17.4.4 客戶端程式設計 270

17.5 UDP 網路編程 270

17.5.1 UDP 通信概念 270

17.5.2 UDP 的特性 271

17.5.3 UDP 的套用 272

17.5.4 UDP 與TCP 的區別 272

17.6 典型實例 272

第18 章 資料庫應用程式開發基礎( 教學視頻:22 分鐘) 277

18.1 資料庫 277

18.1.1 資料庫簡介 277

18.1.2 資料庫中數據的性質 277

18.1.3 資料庫的特點 278

18.2 JDBC 概述 278

18.2.1 JDBC 介紹 279

18.2.2 JDBC 的4 種驅動程式 280

18.2.3 JDBC 對B/S 和C/S 模式的支持 281

18.3 java.sql 包 281

18.4 SQL 語句 282

18.4.1 SQL 語句的分類 282

18.4.2 SELECT 語句 282

18.4.3 INSERT 語句 282

18.4.4 UPDATE 語句 283

18.4.5 DELETE 語句 283

18.4.6 CREATE 語句 283

18.4.7 DROP 語句 283

18.5 典型實例 283

第19 章 使用Swing 組件創建資料庫應用程式( 教學視頻:10 分鐘) 286

19.1 JComboBox 組件創建資料庫應用程式 286

19.1.1 創建JComboBox286

19.1.2 DefaultComboBoxModel創建JComboBox288

19.2 JList 組件創建資料庫應用程式 289

19.2.1 DefaultListModel 創建JList289

19.2.2 ListModel 創建JList290

19.3 JTable 組件創建資料庫應用程式 291

19.3.1 JTable 相關的類 291

19.3.2 DefaultTableModel創建JTable292

19.4 典型實例 293

第五篇 Java Web 基礎

第20 章 JSP( 教學視頻:25 分鐘) 297

20.1 JSP 簡介 297

20.1.1 MVC 模式 297

20.1.2 JSP 技術的優點 298

20.2 基本語法 298

20.2.1 注釋 298

20.2.2 JSP 指令 299

20.3 JSP 腳本元素 302

20.3.1 JSP 聲明 302

20.3.2 JSP 表達式 302

20.4 JSP 動作 303

20.4.1 include 動作元素 303

20.4.2 forword 動作元素 304

20.4.3 plugin 動作元素 304

20.4.4 param 動作元素 305

20.4.5 useBean 及setProperty 和getProperty 動作元素 305

20.5 JSP 內置對象 307

20.5.1 request 對象 308

20.5.2 response 對象 309

20.5.3 session 對象 309

20.5.4 application 對象 310

20.5.5 out 對象 311

20.5.6 config 對象 312

20.5.7 exception 對象 313

20.5.8 pageContext 對象 313

20.6 典型實例 314

第21 章 Servlet( 教學視頻:23 分鐘) 318

21.1 Servlet 簡介 318

21.1.1 什麼是Servlet318

21.1.2 Servlet 的生命周期 318

21.1.3 Servlet 的基本結構 319

21.2 HTTPServlet套用編程接口 319

21.2.1 init()方法 320

21.2.2 service()方法 320

21.2.3 doGet()方法 320

21.2.4 doPost()方法 320

21.2.5 destroy()方法 320

21.2.6 GetServletConfig()方法 321

21.2.7 GetServletInfo()方法 321

21.3 創建HttpServlet321

21.4 調用HttpServlet322

21.4.1 由URL 調用Servlet322

21.4.2 在<FORM>標記中指定Servlet323

21.4.3 在<SERVLET>標記中指定Servlet323

21.4.4 在ASP 檔案中調用Servlet324

21.5 Servlet 之間的跳轉 324

21.5.1 轉向(Forward) 324

21.5.2 重定向(Redirect) 325

21.6 典型實例 326

第六篇 Java 實戰

第22 章 案例:教務管理系統(一) 330

22.1 總體設計與概要說明 330

22.1.1 功能模組劃分 330

22.1.2 功能模組說明 330

22.2 業務流程圖 331

22.2.1 登錄模組流程 331

22.2.2 班主任管理模組流程 332

22.2.3 教務主任管理模組 332

22.2.4 人事管理模組 332

22.3 資料庫設計 333

22.3.1 資料庫需求分析 333

22.3.2 資料庫概念結構設計 333

22.3.3 資料庫邏輯結構設計 335

22.3.4 資料庫結構的實現 338

第23 章 案例:教務管理系統(二) 340

23.1 應用程式實現 340

23.2 實現登錄模組 341

23.3 管理界面介紹 342

23.4 實現修改密碼模組 344

23.4.1 jbInit()方法 346

23.4.2 修改用戶許可權 347

23.4.3 修改用戶密碼 347

23.5 實現“關於”對話框 348

23.6 實現人事管理模組 349

23.6.1 退出系統管理 351

23.6.2 創建組件及處理事件 353

23.6.3 動態顯示登錄者相關信息 355

23.6.4 員工個人信息的查詢 357

23.6.5 事件處理方法回調 357

23.7 實現TeacherInfoBean信息封裝類 359

23.8 實現DepartmentAction、

TeacherAction 業務處理類 360

23.8.1 實現DepartmentAction 類 360

23.8.2 實現TeacherAction 類 361

23.9 軟體部署 365

23.9.1 組織程式所需資源 365

23.9.2 運行和測試程式 366

23.10 項目總結 366

相關詞條

熱門詞條

聯絡我們