産品特色
編輯推薦
人郵學院30小時慕課教學視頻同步講解,讓學習更高效快捷
180個精彩課堂案例,12個課堂實驗,1個綜閤案例,Java學習從入門到精通
66道習題,300道自測題,5套自測試捲,鞏固所學知識
提供免費教學資源,包括精品教學PPT、案例源代碼、自測題庫、拓展綜閤案例
內容簡介
本書係統地介紹Java程序設計的基礎知識、開發環境與開發工具。全書共分16章,內容包括Java程序設計語言概述、Java語言的基本語法、運算符與流程控製、麵嚮對象基礎、繼承與多態、接口、異常處理、常用的實用類、集閤、Java輸入與輸齣、Swing程序設計、Swing高級應用、多綫程、網絡程序設計、JDBC數據庫編程、騰宇超市管理係統。本書所有知識都以結閤具體實例的形式進行介紹,力求詳略得當,使讀者快速掌握Java程序設計的方法。書後附有上機實驗,供讀者實踐練習。
本書為慕課版教材,各章節主要內容配備瞭以二維碼為載體的微課,並在人郵學院平颱上提供瞭慕課。此外,本書還提供瞭課程資源包,資源包中提供有本書所有實例、上機指導、綜閤案例和課程設計的源代碼,製作精良的電子課件PPT,自測試捲等內容。資源包也可在人郵學院上下載。其中,源代碼全部經過精心測試,能夠在Windows 7、Windows 8、Windows 10係統下編譯和運行。
作者簡介
明日科技,程序設計類暢銷圖書作者,絕大多數品種在“全國計算機圖書排行榜”同品種排行中名列前茅,纍計銷售百萬冊。作者編寫的《Java 從入門到精通》長期占據各網店排行榜的榜首位置。
內頁插圖
目錄
第1章 Java語言概述 1
1.1 Java語言誕生背景 2
1.2 Java簡介 2
1.3 Java語言的特點 2
1.4 Java的運行機製 3
1.5 JDK安裝 4
1.5.1 下載JDK 4
1.5.2 安裝JDK 5
1.5.3 Windows係統下配置和測試JDK 7
1.6 Java SE 8的新特性 9
1.7 Java程序開發過程 9
1.8 Java開發工具Eclipse 10
1.8.1 Eclipse簡介 10
1.8.2 Eclipse的安裝與啓動 10
1.8.3 Eclipse編寫Java程序的流程 12
1.9 編程風格 15
1.10 Java API簡介 16
1.10.1 下載Java API 16
1.10.2 在綫查看API 17
小結 18
習題 18
第2章 Java語言的基本語法 19
2.1 關鍵字和標識符 20
2.1.1 Unicode字符集 20
2.1.2 關鍵字 20
2.1.3 標識符 20
2.2 常量與變量 21
2.2.1 常量的概念及使用要點 21
2.2.2 變量的概念及使用要點 22
2.3 數據類型 22
2.3.1 基本數據類型 23
實例:使用基本數據類型定義員工的年齡
實例:為boolean型變量賦值並輸齣
2.3.2 引用數據類型 27
實例:使用引用類型定義員工的姓名
2.3.3 基本類型與引用類型的區彆 29
實例:基本數據類型與引用數據類型
2.3.4 數據類型之間的相互轉換 31
2.4 數組 33
2.4.1 聲明數組 33
2.4.2 創建數組 34
2.4.3 初始化數組 34
2.4.4 數組長度 34
2.4.5 使用數組元素 35
小結 35
習題 36
第3章 運算符與流程控製 37
3.1 運算符 38
3.1.1 賦值運算符 38
3.1.2 算術運算符 38
3.1.3 關係運算符 39
3.1.4 邏輯運算符 40
3.1.5 位運算符 42
實例:邏輯位運算符的運算規則
實例:移位運算符的運算規則
3.1.6 對象運算符 44
3.1.7 其他運算符 44
3.1.8 運算符的優先級彆及結閤性 45
3.2 if語句 46
3.2.1 簡單的if條件語句 46
實例:使用if語句求齣c的最終結果
實例:在騰宇超市管理係統中判斷用戶添加的信息是否完整
3.2.2 “if...else”條件語句 47
實例:用“if...else”語句判斷69與29的大小
實例:在騰宇超市管理係統的顯示采購訂貨窗體中,將用戶選擇的采購訂貨信息保存在文本文件中
3.2.3 “if...else if”多分支語句 49
3.2.4 if語句的嵌套 50
實例:用“if...else”嵌套實現:判斷英語成績得78分是處在什麼階段
3.3 switch多分支語句 51
實例:用switch語句判斷,在10、20、30之間是否有符閤5乘以7的結果
3.4 if語句和switch語句的區彆 53
3.5 循環語句 53
3.5.1 while循環語句 53
實例:計算1~99的整數和
3.5.2 “do...while”循環語句 54
實例:計算1~100的整數和
3.5.3 for循環語句 55
實例:用for循環語句實現打印1~10的所有整數
實例:在人員管理窗體中,查詢所有部門信息,並顯示
3.5.4 for-each風格的for循環 57
3.5.5 循環的嵌套 57
實例:打印九九乘法錶
實例:求100以內能被3和7整除的數
3.6 跳轉語句 60
3.6.1 break跳轉語句 60
實例:求10以內的素數
3.6.2 continue跳轉語句 60
實例:求100以內能被9整除的數
3.6.3 return跳轉語句 61
實例:以List形式返迴指定部門員工信息,並顯示
小結 62
習題 62
第4章 麵嚮對象基礎 63
4.1 麵嚮對象程序設計 64
4.1.1 麵嚮對象程序設計概述 64
4.1.2 麵嚮對象程序設計的特點 64
4.2 類 65
4.2.1 定義類 65
4.2.2 成員變量和局部變量 67
4.2.3 成員方法 68
實例:實現兩數相加
實例:按部門名稱查詢部門編號
4.2.4 注意事項 70
4.2.5 類的UML圖 70
4.3 構造方法與對象 71
4.3.1 構造方法的概念及用途 71
實例:定義Apple類,在該類的構造方法中初始化成員變量
4.3.2 對象概述 73
實例:定義一個類,創建該類的對象,同時改變對象的成員變量的值,並調用該對象的成員方法
實例:創建User對象並賦值
4.4 類與程序的結構關係 75
4.5 參數傳值 75
4.5.1 傳 值 機 製 75
4.5.2 基本數據類型的參數傳值 76
實例:在Point類中定義一個add方法,並嚮add方法傳遞兩個參數
4.5.3 引用類型參數的傳值 76
實例:創建Car類和fuelTank類,實現引用類型參數的傳值
4.6 對象的組閤 77
4.6.1 組閤與復用 77
實例:計算圓錐的體積
4.6.2 類的關聯關係和依賴
關係的UML圖 78
4.7 實例方法與類方法 79
4.7.1 實例方法與類方法的定義 79
4.7.2 實例方法和類方法的區彆 79
4.8 this關鍵字 79
實例:創建類文件,並將方法的參數值賦予類中成員變量
實例:在項目中創建類文件,定義方法,並通過this關鍵字返迴
實例:在類中定義成員變量,並在成員方法中定義局部變量,用this關鍵字在成員方法中使用成員變量
實例:使用this關鍵字為User類的屬性賦值
4.9 包 81
4.9.1 包的概念 81
4.9.2 創建包 82
實例:為騰宇超市係統各部分功能創建包
4.9.3 使用包中的類 82
4.10 import語句 83
4.10.1 類的兩種訪問方法 83
4.10.2 引入類庫中的類 83
實例:在騰宇超市管理係統上顯示時鍾
4.11 訪問權限 84
小結 86
習題 86
第5章 繼承與多態 88
5.1 繼承簡介 89
5.1.1 繼承的概念 89
5.1.2 子類的設計 89
實例:實現帶背景的窗體
5.1.3 繼承的使用原則 90
實例:定義一個動物類Animal及它的子類Bird
5.1.4 使用super關鍵字 91
5.2 子類的繼承 92
實例:定義三個類實現子類繼承
5.3 多態 94
5.3.1 方法的重載 94
實例:在Calculate類中定義兩個名稱為getArea()的方法和兩個名稱為draw()的方法
5.3.2 避免重載齣現的歧義 95
5.3.3 方法的覆蓋 95
實例:定義類Animal及它的子類,然後在Zoo類中分彆創建各個子類對象,並覆蓋父類
方法
5.3.4 嚮上轉型 97
實例:創建抽象的動物類,實現嚮上轉型
5.4 抽象類 98
5.4.1 抽象類和抽象方法 98
實例:定義類Fruit,在該類中定義一個抽象方法,同時在其子類中實現該抽象方法
5.4.2 抽象類和抽象方法的規則 99
5.4.3 抽象類的作用 100
5.5 final修飾符 100
5.5.1 final變量 100
5.5.2 final類 101
實例:創建一個名稱為Final-Demo的final類
5.5.3 final方法 101
5.6 內 部 類 101
5.6.1 成員內部類 102
實例:創建成員內部類的實例對象,並調用該對象的print()方法
5.6.2 局部內部類 103
實例:創建局部內部類的實例對象,並調用price()方法輸齣單價信息
5.6.3 靜態內部類 104
實例:創建靜態內部類的實例對象,並執行introduction()方法
5.6.4 匿名內部類 105
實例:創建匿名內部類,編寫print()方法,並打印一條信息
小結 106
習題 106
第6章 接口 107
6.1 接口簡介 108
6.2 定義接口 108
實例:定義一個Calculate接口,在該接口中定義一個常量PI和兩個方法
6.3 接口的繼承 108
6.4 接口的實現 109
實例:定義兩個接口,並且在這兩個接口中聲明一個同名的常量和一個同名的方法,然後再定義一個同時實現這兩個接口的類
實例:在窗體中實現滾動微調處理器
6.5 接口與抽象類 112
6.6 接口的UML圖 112
6.7 接口迴調 113
實例:使用接口迴調技術
6.8 接口與多態 114
實例:使用Dog類和Cat類都實現瞭接口Animals接口
6.9 接口參 數 115
實例:實現接口的迴調參數
6.10 麵嚮接口編程 115
小結 116
習題 116
第7章 異常處理 117
7.1 異常 118
7.2 異常處理 119
7.2.1 使用“try...catch”語句 119
實例:創建修改采購訂貨信息方法
7.2.2 finally子句的用法 121
實例:代碼齣現異常仍然執行finally
7.2.3 使用throws關鍵字拋齣異常 122
實例:在dofile()方法聲明中拋齣一個IOException異常
7.2.4 使用throw關鍵字 122
實例:創建People類,拋齣異常,並捕獲異常進行處理
7.2.5 使用異常處理語句的注意事項 123
7.3 異常類 125
7.3.1 Error類 125
7.3.2 Exception類 126
7.4 自定義異常 127
實例:自定義一個異常類
7.5 異常的使用原則 129
小結 129
習題 129
第8章 常用的實用類 130
8.1 String類 131
8.1.1 創建字符串對象 131
8.1.2 連接字符串 131
?實例:通過運算符“+”連接字符串
實例:通過運算符“+”連接查詢字符串
8.1.3 字符串操作 133
8.1.4 格式化字符串 138
8.1.5 對象的字符串錶示 139
實例:繼承Object類的子類重寫toString()方法
8.2 日期的格式化 140
8.2.1 Date類 140
8.2.2 格式化日期和時間 140
8.3 Scanner類 142
實例:實現在控製颱上輸入姓名、年齡、地址
8.4 Math和Random類 143
8.5 數字格式化 144
8.5.1 Formatter類 144
8.5.2 格式化整數 144
8.5.3 格式化浮點數 145
8.6 StringBuffer類 146
8.6.1 StringBuffer對象的創建 146
8.6.2 StringBuffer類的常用方法 147
8.7 包裝類 148
8.7.1 Integer 148
實例:以int型變量作為參數創建Integer對象
實例:以String型變量作為參數創建Integer對象
實例:創建類Summation,定義String數組,將元素轉化成int型,並相加
8.7.2 Boolean 151
實例:在類GetBoolean中以不同的構造方法創建Boolean對象,並調用booleanValue()方法,然後轉換為boolean數據輸齣
實例:將String類型中的元素轉換成int型,並將各元素相加
實例:將字符變量以二進製、十六進製和八進製形式輸齣
實例:在主方法中將Integer類的常量值輸齣
8.7.3 Byte 152
實例:以String型變量作為參數,創建Byte對象
8.7.4 Character 153
實例:在類UpperOrLower的主方法中創建Character類的對象,並判斷字符的大小寫狀態
8.7.5 Double 154
8.7.6 Number 155
小結 155
習題 156
第9章 集閤 157
9.1 集閤中主要接口的概述 158
9.2 Collection接口 158
9.2.1 addAll()方法 159
實例:使用addAll()方法嚮集閤中添加對象
9.2.2 removeAll()方法 160
實例:使用removeAll()方法從集閤中移除對象
9.2.3 retainAll()方法 161
實例:實現僅保留list集閤中同時包含在list2集閤中的對象
9.2.4 containsAll()方法 162
實例:使用containsAll ()方法查看在集閤list中是否包含集閤list2中的所有對象
9.2.5 toArray()方法 162
實例:使用toArray ()方法獲得一個包含所有對象的指定類型的數組
9.3 List集閤 163
9.3.1 List的用法 163
實例:測試add(int index, Object obj)方法和set(int index, Object obj)方法的區彆
實例:測試indexOf(Object obj)方法和lastIndexOf(Object obj)方法的區彆
實例:使用subList()方法
9.3.2 使用ArrayList類 165
實例:編寫一個模仿經常需要隨機訪問集閤中對象的例子
實例:使用List集閤根據訂單號查詢訂貨信息
9.3.3 使用LinkedList類 167
實例:使用LinkedList類
9.4 Set集閤 169
9.4.1 使用HashSet類 169
實例:使用HashSet類
9.4.2 使用TreeSet類 171
實例:使用TreeSet類
實例:自定義比較器
9.5 Map集閤 177
9.5.1 Map的用法 177
實例:方法get()和containsKey()的區彆
9.5.2 使用HashMap類 178
實例:利用HashMap類實現Map集閤
9.5.3 使用TreeMap類 181
實例:使用TreeMap類
小結 182
習題 182
第10章 Java輸入與輸齣 183
10.1 File類 184
實例:在C盤存在一個“Example1.txt”文件,使用File類獲取文件信息
10.2 流 185
10.2.1 流的基本概念 185
10.2.2 輸入輸齣流 185
10.3 字節流 187
10.3.1 InputStream類與OutputStream類 187
10.3.2 FileInputStream類與FileOutputStream類 188
實例:讀取文本文件中保存的要修改的采購訂貨信息的編號
實例:將用戶選擇的采購訂貨信息的編號寫入文本文件中
10.4 字符流 190
10.4.1 Reader類與Writer類 190
10.4.2 InputStreamReader類與OutputStreamWriter類 191
實例:創建兩個File類的對象,分彆判斷兩個文件是否存在
10.4.3 FileReader類與FileWriter類 194
10.4.4 BufferedReader類與BufferedWriter類 195
實例:使用BufferedReader類和BufferedWriter類實現文件復製
10.4.5 PrintStream類與PrintWriter類 197
實例:隨機輸齣100以內的5個數,並把這5個數保存到文件中
10.4.6 System.in獲取用戶輸入 199
實例:實現鍵盤輸入,把輸入的內容存儲到文件中
10.5 RandomAccessFile類 200
實例:創建int型數組,然後寫入到文件中,最後按倒序讀齣這些數據
10.6 過濾器流 202
10.7 對象序列化(Object Serialization) 202
10.7.1 ObjectInput與ObjectOutput 203
10.7.2 ObjectInputStream與ObjectOutputStream 203
實例:在C盤存在文件“Exam-ple10.txt”。實現用戶密碼的修改
小結 205
習題 205
第11章 Swing程序設計 206
11.1 Swing概述 207
11.2 創建窗體 207
實例:編寫創建窗體類
11.3 常用布局管理器 208
11.3.1 不使用布局管理器 209
實例:在不使用任何布局管理器的情況下實現登錄窗口
11.3.2 FlowLayout布局管理器 210
實例:流布局管理器示例
11.3.3 BorderLayout布局管理器 211
實例:邊界布局管理器示例
11.3.4 GridLayout布局管理器 212
實例:使用網格布局管理器創建功能按鈕麵闆
11.4 常用麵闆 213
11.4.1 JPanel麵闆 213
實例:實現一個帶有顯示器的計算器界麵
實例:為拼圖遊戲創建麵闆
11.4.2 JScrollPane麵闆 215
實例:應用滾動麵闆
11.5 常用組件 217
11.5.1 JLabel(標簽)組件 217
實例:在修改訂貨信息窗體中,設置文本框中的內容
11.5.2 JButton(按鈕)組件 218
實例:實現一個典型的按鈕
11.5.3 JRadioButton(單選按鈕)組件 219
實例:用來填寫性彆的單選按鈕組
11.5.4 JCheckBox(復選框)組件 220
實例:用來填寫愛好的復選框
實例:使用網格布局管理器創建功能按鈕麵闆
11.5.5 JComboBox(選擇框)組件 222
實例:創建用來填寫學曆的選擇框
11.5.6 JList(列錶框)組件 223
實例:用來填寫愛好的列錶框
11.5.7 JTextField(文本框)組件 225
實例:創建用來填寫姓名的文本框
實例:在基本檔案窗體中實現文本框功能
11.5.8 JPasswordField(密碼框)組件 227
實例:創建用來填寫密碼的密碼框
實例:在登錄的時候實現密碼框功能
11.5.9 JTextArea(文本域)組件 229
實例:實現一個文本域,文本域的列數為15,行數為3,並且文本自動換行
11.6 常用事件處理 230
11.6.1 動作事件處理 230
實例:編寫一個用來演示由按鈕觸發動作事件的示例
實例:在“部門”下拉列錶框中添加監聽事件
11.6.2 焦點事件處理 233
實例:編寫一個用來演示由文本框觸發焦點事件的示例
11.6.3 鼠標事件處理
實例:編寫一個用來演示鼠標事件的示例
11.6.4 鍵盤事件處理 236
實例:編寫一個用來演示鍵盤事件的示例
11.7 拼圖遊戲 238
11.7.1 遊戲簡介 238
11.7.2 設計思路 238
11.7.3 開發步驟 240
小結 243
習題 244
第12章 Swing高級應用 245
12.1 錶格 246
12.1.1 創建錶格 246
實例:在窗體中創建可以滾動的錶格
12.1.2 定義錶格 247
實例:在窗體中定義錶格
12.1.3 操作錶格 251
實例:在窗體的錶格中添加按鈕
12.1.4 利用錶格模型創建錶格 253
實例:利用錶格模型創建錶格,並使用錶格排序器
12.1.5 維護錶格模型 255
實例:維護錶格模型
12.2 樹 258
12.2.1 簡單的樹 258
實例:創建簡單的樹
12.2.2 處理選中節點事件 260
實例:處理選中節點事件
12.2.3 遍曆樹節點 262
實例:遍曆樹節點
12.2.4 處理展開節點事件 264
實例:處理展開節點事件
12.3 組件麵闆 265
12.3.1 分割麵闆 265
實例:設置分割麵闆的相關屬性
12.3.2 選項卡麵闆 268
實例:設置選項卡麵闆的相關屬性
12.4 菜單 271
12.4.1 創建菜單欄 271
實例:創建菜單欄
12.4.2 創建彈齣式菜單 273
實例:創建彈齣式菜單
12.4.3 定製個性化菜單 273
實例:定製個性化菜單
12.5 工具欄 277
實例:創建工具欄
12.6 進度條 278
實例:使用進度條
小結 280
習題 280
第13章 多綫程 281
13.1 綫程概述 282
13.2 綫程的創建 283
13.2.1 綫程的創建方式 283
13.2.2 繼承Thread類 284
實例:創建SimpleThread綫程類,該類將創建的兩個綫程同時在控製颱輸齣信息
13.2.3 實現Runnable接口 284
實例:創建SimpleRunnable類,該類實現瞭Runnable接口,並通過run()方法實現每間隔0.5秒在控製颱輸齣一個“*”字符,直到輸齣15個“*”字符
13.3 綫程的生命周期 285
13.4 綫程的優先級 286
13.5 綫程的控製 287
13.5.1 綫程的啓動 287
實例:使用多綫程技術實現用戶進入聊天室
13.5.2 綫程的掛起 287
13.5.3 綫程狀態檢查 289
13.5.4 結束綫程 289
實例:在網絡聊天中結束聊天功能
13.5.5 後颱綫程 291
13.6 綫程的同步 291
實例:在項目中創建Thread-SafeTest類,該類實現瞭Runnable接口,主要實現模擬火車站售票係統的功能
實例:創建兩個綫程同時調用PrintClass類的printch()方法打印字符,把printch()方法修飾為同步和非同步方法
實例:創建兩個綫程同時調用PrintClass類的printch()方法打印字符,把printch()方法中的代碼修飾為同步和非同步代碼塊
13.7 綫程通信 295
實例:創建綫程實現上文中水塘的進水和排水
實例:使用多綫程技術實現消息的不間斷收發
13.8 多綫程産生死鎖 299
小結 299
習題 300
第14章 網絡程序設計 301
14.1 基礎知識 301
14.1.1 TCP 302
14.1.2 UDP 302
14.2 IP地址封裝 302
實例:測試IP“192.168.1.100”至“192.168.1.150”範圍內的所有可訪問的主機的名稱
實例:在網絡聊天中實現IP地址的獲取
14.3 套接字 304
14.3.1 服務器端套接字 304
14.3.2 客戶端套接字 306
實例:檢測本地計算機中被使用的端口,端口的檢測範圍是1~256
實例:實例化客戶器端套接字
實例:創建服務器Server程序和客戶端Client程序,並實現簡單的Socket通信程序
14.4 數據報 310
14.4.1 DatagramPacket 310
14.4.2 DatagramSocket 311
實例:實現簡單的UDP通信
14.5 網絡聊天程序開發 313
小結 317
習題 318
第15章 JDBC數據庫編程 319
15.1 JDBC概述 320
15.1.1 JDBC-ODBC橋技術介紹 320
15.1.2 JDBC技術介紹 320
15.1.3 JDBC驅動類型 321
15.2 JDBC中的常用類和接口 322
15.2.1 Driver接口 322
15.2.2 DriverManager類 322
15.2.3 Connection接口 322
15.2.4 Statement接口 323
15.2.5 PreparedStatement接口 324
15.2.6 CallableStatement接口 325
15.2.7 ResultSet接口 326
15.3 連接數據庫 328
15.3.1 加載JDBC驅動程序 328
實例:加載SQL Server 2008數據庫驅動程序到JVM中
實例:為滕宇超市係統加載數據庫驅動
15.3.2 創建數據庫連接 329
實例:與數據庫建立連接的典型代碼
實例:創建滕宇超市係統與數據庫連接
15.3.3 執行SQL語句 330
實例:在倉庫入庫窗體中,修改倉庫入庫信息
15.3.4 獲得查詢結果 331
15.3.5 關閉連接 331
15.4 操作數據庫 332
15.4.1 添加數據 332
實例:通過Statement實例執行靜態INSERT語句添加單條記錄
實例:通過PreparedState-ment實例執行動態INSERT語句批量添加記錄
實例:通過CallableStatement實例執行存儲過程批量添加記錄
實例:通過PreparedStatement實例執行動態INSERT語句添加單條記錄
實例:通過CallableStatement實例執行存儲過程添加單條記錄
實例:在添加員工窗體中實現添加功能
15.4.2 查詢數據 336
實例:通過Statement實例執行靜態SELECT語句查詢記錄
實例:通過PreparedStatement實例執行動態SELECT語句查詢記錄
實例:根據客戶地址查詢信息
15.4.3 修改數據 338
實例:通過Statement實例每次執行一條UPDATE語句
實例:通過PreparedState-ment實例一次執行多條UPDATE語句
實例:在倉庫齣庫窗體中實現對信息的修改
15.4.4 刪除數據 341
實例:通過Statement實例每次執行一條DELETE語句
實例:通過PreparedStatement實例一次執行多條DELETE語句
實例:在倉庫齣庫窗體中實現對信息的刪除
15.5 應用JDBC事務 343
實例:應用JDBC事務
小結 347
習題 347
第16章 綜閤案例——騰宇超市管理係統 348
16.1 項目設計思路 349
16.1.1 功能闡述 349
16.1.2 係統預覽 349
16.1.3 功能結構 349
16.1.4 文件組織結構 350
16.2 數據庫設計 350
16.2.1 數據庫設計 350
16.2.2 數據錶設計 350
16.3 公共類設計 352
16.3.1 連接數據庫 352
16.3.2 獲取當前係統時間類 353
16.4 登錄模塊設計 353
16.4.1 登錄模塊概述 353
16.4.2 實現帶背景的窗體 353
16.4.3 登錄模塊實現過程 354
16.5 主窗體設計 357
16.5.1 主窗體概述 357
16.5.2 平移麵闆控件 357
16.5.3 主窗體實現過程 360
16.6 采購訂貨模塊設計 362
16.6.1 采購訂貨模塊概述 362
16.6.2 在錶格中添加按鈕 362
16.6.3 添加采購訂貨信息實現過程 363
16.6.4 搜索采購訂貨信息實現過程 365
16.6.5 修改采購訂貨信息實現過程 367
16.6.6 刪除采購訂貨信息實現過程 370
16.7 人員管理模塊設計 371
16.7.1 人員管理模塊概述 371
16.7.2 使用觸發器級聯刪除數據 371
16.7.3 顯示查詢條件實現過程 372
16.7.4 顯示員工基本信息實現過程 374
16.7.5 添加員工信息實現過程 376
16.7.6 刪除員工信息實現過程 379
16.8 在Eclipse中實現程序打包 380
小結 382
附錄A 上機實驗 383
實驗1 Java基礎 384
實驗目的 384
實驗內容 384
實驗2 程序流程控製 385
實驗目的 385
實驗內容 386
實驗3 類的繼承 387
實驗目的 387
實驗內容 387
實驗4 使用集閤類 388
實驗目的 388
實驗內容 388
實驗5 數據流 389
實驗目的 389
實驗內容 389
實驗6 綫程控製 390
實驗目的 390
實驗內容 390
實驗7 異常處理 391
實驗目的 391
實驗內容 391
實驗8 Swing程序設計 392
實驗目的 392
實驗內容 392
實驗9 網絡程序設計 394
實驗目的 394
實驗內容 394
實驗10 通過JDBC方式操作數據庫 394
實驗目的 394
實驗內容 395
實驗11 計算器 397
實驗目的 397
實驗內容 397
實驗12 日誌簿 401
實驗目的 401
實驗內容 401
前言/序言
編程的基石:精通Java,開啓無限可能 在這個數字浪潮席捲全球的時代,掌握一門強大的編程語言,就如同擁有瞭一把解鎖未來世界的鑰匙。而Java,作為當之無愧的編程巨擘,憑藉其跨平颱、麵嚮對象、安全可靠等卓越特性,已經深深地滲透到我們生活的方方麵麵。從支撐龐大企業級應用到驅動智能手機上的無數App,再到構建高性能的服務器端係統,Java的身影無處不在。 本書並非一本枯燥的語法手冊,而是旨在帶領您構建紮實的Java編程功底,理解編程思維的精髓,並最終能夠獨立運用Java語言解決實際問題,創造齣屬於自己的精彩。我們將從最基礎的概念齣發,一步步深入探索Java的核心機製,引導您掌握編寫健壯、高效、可維護代碼的藝術。 第一部分:Java編程的基石 踏入Java的世界,首先需要理解的是編程的本質——如何用計算機能夠理解的語言來錶達我們的想法,並讓它按照我們的意願去執行。 認識Java: 我們將從Java的誕生背景、核心理念以及它為何能在眾多編程語言中脫穎而齣開始。瞭解Java虛擬機(JVM)的運作原理,理解“一次編寫,到處運行”的魔力,以及Java在生態係統中的重要地位,能幫助您從宏觀上把握這門語言的強大之處。 搭建您的開發環境: 實踐是檢驗真理的唯一標準。我們將指導您如何安裝Java開發工具包(JDK),並配置一個高效的集成開發環境(IDE),例如Eclipse或IntelliJ IDEA。掌握IDE的使用技巧,將大大提升您的開發效率,讓您專注於代碼邏輯而不是繁瑣的配置。 變量、數據類型與運算符: 這是編程中最基本也最重要的組成部分。您將學習Java提供的各種基本數據類型,如整型、浮點型、字符型和布爾型,以及如何聲明和使用變量來存儲和操作數據。掌握算術運算符、關係運算符、邏輯運算符以及位運算符,將讓您能夠進行各種復雜的數據計算和邏輯判斷。 控製流語句: 程序之所以能夠做齣決策和循環執行任務,全依賴於控製流語句。我們將深入講解條件語句(`if-else`,`switch`),讓您的程序能夠根據不同的情況做齣不同的反應;以及循環語句(`for`,`while`,`do-while`),使您的程序能夠重復執行某個任務,直至滿足特定條件。這些是構建任何復雜程序的基礎。 數組: 當您需要存儲一組同類型的數據時,數組就派上瞭用場。您將學習如何聲明、創建和訪問一維數組,以及如何進行數組的初始化和遍曆。理解數組的內存模型,將有助於您更有效地利用內存資源。 第二部分:麵嚮對象編程(OOP)的魅力 Java之所以如此強大,很大程度上歸功於其對麵嚮對象編程範式的完美支持。 this部分將是本書的核心,它將徹底改變您對軟件開發的認知。 類與對象: 麵嚮對象的核心在於“類”和“對象”。我們將形象地解釋類是如何定義事物的屬性(數據)和行為(方法),而對象則是類的具體實例。您將學會如何定義自己的類,創建對象,並理解對象之間的交互是如何構建復雜係統的。 封裝、繼承與多態: 這是麵嚮對象的三大特性,它們是構建可維護、可擴展代碼的關鍵。 封裝: 您將學習如何通過訪問修飾符(`public`, `private`, `protected`)來控製數據的訪問權限,保護類內部的數據不被外部隨意修改,並通過getter和setter方法提供受控的訪問接口。 繼承: 掌握繼承機製,可以幫助您避免代碼冗餘。您將學會如何創建父類(超類)和子類(派生類),讓子類繼承父類的屬性和方法,並可以根據自身需求進行擴展或重寫。 多態: 多態是麵嚮對象中最具錶現力的特性之一。您將理解方法重寫(Overriding)和方法重載(Overloading)的區彆,以及如何利用接口和抽象類來實現多態,從而編寫齣更具靈活性和通用性的代碼。 構造方法與`this`關鍵字: 構造方法是創建對象時自動調用的特殊方法,您將學習如何定義和使用構造方法來初始化對象的屬性。`this`關鍵字則用於區分當前對象的成員變量和局部變量,或調用當前對象的其他構造方法。 靜態成員(`static`): 理解`static`關鍵字的作用,能讓您創建類級彆的成員,這些成員不屬於任何特定的對象,而是屬於整個類。這在實現單例模式、工具類等方麵非常有用。 包(Package)的管理: 隨著項目規模的增大,對類進行組織和管理變得至關重要。我們將講解如何使用包來組織類,避免命名衝突,並提高代碼的可讀性和可維護性。 第三部分:Java的高級特性與實踐 掌握瞭基礎和麵嚮對象的核心概念後,我們將進一步深入Java的強大功能,並開始將所學知識應用於實際場景。 接口與抽象類: 它們是實現抽象和多態的重要工具。您將學習接口的定義和實現,理解其“契約”的作用;以及抽象類的設計,如何定義抽象方法,讓子類必須實現。 集閤框架(Collections Framework): 在實際開發中,我們經常需要處理一組數據。Java提供瞭強大的集閤框架,包括`List`、`Set`、`Map`等接口及其實現類,如`ArrayList`、`HashSet`、`HashMap`。您將學習如何選擇閤適的集閤類型,並高效地進行數據的存儲、查找和管理。 異常處理(Exception Handling): 任何程序都可能遇到意外情況。Java的異常處理機製能夠幫助您優雅地處理程序運行中齣現的錯誤,保證程序的健壯性。您將學習`try-catch-finally`塊的使用,理解Checked Exception和Unchecked Exception的區彆,並學會如何自定義異常。 I/O流: 程序需要與外部世界進行交互,最常見的方式就是通過輸入輸齣(I/O)流。我們將講解文件操作、字節流、字符流以及緩衝流等,讓您能夠讀取和寫入文件,處理網絡通信中的數據。 多綫程編程(Multithreading): 在需要同時執行多個任務的場景下,多綫程編程是必不可少的。您將學習如何創建和管理綫程,理解綫程的生命周期,並掌握綫程同步機製,以避免數據競爭和死鎖等問題。 泛型(Generics): 泛型可以在編譯時期檢查類型安全,消除對類型強製轉換的需要,並提高代碼的可重用性。您將學習如何定義和使用泛型類、泛型接口和泛型方法。 Lambda錶達式與Stream API(Java 8及以後): 這是Java語言現代化的重要體現。Lambda錶達式提供瞭一種簡潔的函數式編程風格,而Stream API則提供瞭一種聲明式的、高效的數據處理方式。它們將極大地簡化您的代碼,並提升處理集閤數據的效率。 第四部分:構建高質量Java應用程序 理論知識的掌握最終需要轉化為實際的開發能力。這一部分將聚焦於如何編寫高質量、易於維護的Java代碼,並瞭解一些常見的開發實踐。 代碼規範與最佳實踐: 編寫清晰、易讀、易於理解的代碼是專業程序員的基本素養。我們將介紹Java編碼規範,以及一些通用的編程技巧,如命名約定、代碼注釋、模塊化設計等。 常用Java API的應用: Java提供瞭豐富而強大的API(應用程序編程接口),涵蓋瞭日期時間、字符串處理、數學計算等方方麵麵。您將瞭解並學會使用這些常用的API,以避免重復造輪子,並提高開發效率。 初步接觸設計模式: 設計模式是解決軟件開發中常見問題的成熟方案。雖然本書不深入探討所有設計模式,但我們將介紹一些基礎且常用的模式,如單例模式、工廠模式等,讓您瞭解它們的作用和價值,為後續深入學習打下基礎。 單元測試的重要性: 編寫單元測試是保證代碼質量的關鍵環節。您將瞭解單元測試的基本概念,並接觸JUnit等測試框架,學習如何為自己的代碼編寫測試用例,確保程序的正確性。 學習方法與進階建議: 本書采用循序漸進的方式,每個章節都圍繞著清晰的目標展開。我們鼓勵您在閱讀理論知識的同時,立即動手實踐。每一個代碼示例都經過精心設計,旨在幫助您鞏固所學。 勤於動手: 嘗試修改示例代碼,觀察結果變化,加深理解。 主動思考: 在學習新概念時,嘗試用自己的話來解釋它,並思考它在實際開發中的應用場景。 解決問題: 遇到睏難時,不要輕易放棄,嘗試通過查閱資料、調試代碼來找到解決方案。 持續學習: Java技術發展日新月異,掌握本書內容後,建議您繼續深入學習Java的Web開發(如Spring框架)、Android開發,或者深入理解JVM的內部機製等,不斷拓展您的技術棧。 通過本書的學習,您將不僅能夠熟練掌握Java這門強大的編程語言,更能培養起嚴謹的編程思維和解決實際問題的能力。期待您在Java的廣闊天地中,創造齣屬於您的無限精彩!