本書從企業(yè)用人的實踐技術需求出發(fā),系統(tǒng)地介紹了Java語言及相關技術。全書共13章,前4章為Java入門基礎,主要包括Java簡介及開發(fā)環(huán)境搭建、Java基礎語法等;第5、6章介紹Java面向對象編程、異常處理機制及包的概念,全面討論了面向對象程序設計的思想方法及在Java語言中的實現(xiàn);第7、8章介紹Java的常用系統(tǒng)類和I/O流;第9章介紹Java的GUI圖形用戶界面技術;第10、11章介紹線程和網(wǎng)絡編程技術;第12章介紹Java與各種數(shù)據(jù)庫的連接方法及應用;第13章介紹Android程序開發(fā)基礎知識。
本書結構合理,語言簡練,內容深入淺出,以案例匯總各章知識點,使讀者學而知所用,體現(xiàn)了Java編程語言的實戰(zhàn)性特點。本書可以作為高等院校和培訓班相關專業(yè)的教材,還可供從事計算機技術、電子商務、系統(tǒng)工程的人員和企業(yè)技術人員參考。
本書具有重項目實踐,重理論要點,采用案例匯總知識點,力求體現(xiàn)實戰(zhàn)性教材等特點,使讀者逐步具備利用Java來開發(fā)應用程序的能力。教材內容充實,結構合理,每章均配有理論練習題及上機實訓題。本書集知識性、實踐性和操作性于一體,具有內容安排合理、層次清楚、圖文并茂、通俗易懂、實例豐富等特點。
Java程序設計語言是隨著Internet的發(fā)展而產(chǎn)生的,是目前被廣泛使用的程序設計語言之一。由于Java語言具有學習入門快、社會需求量大、就業(yè)面廣等特點,使得Java程序設計語言成為計算機方向的一門專業(yè)必修課,其課程體系也成為各高校計算機學院、軟件學院學生學習的技術主線之一。
現(xiàn)在大多數(shù)Java程序設計教材單純地從程序設計語言的角度出發(fā),純粹介紹語言特點及語法規(guī)則,忽視了Java程序設計語言的應用性,F(xiàn)在大多的高校計算機專業(yè)和軟件學院則強調學生的實踐動手能力,對學生的實踐動手能力要求更高,這就需要有相應的實踐性強的教材。本書正是以這一市場需求為立足點,以理論要點為基礎,以案例驅動總結各章節(jié)知識點,使讀者學而知所用,體現(xiàn)了Java編程語言的實戰(zhàn)性特點。
編者在多年教學經(jīng)驗的基礎上,結合企業(yè)實訓要求,根據(jù)學生的認知規(guī)律精心組織了本書內容,并通過大量的案例,循序漸進地介紹了Java語言程序設計的有關概念和編程技巧。全書共13章。前4章為Java的入門基礎,主要包括Java簡介及開發(fā)環(huán)境搭建,Java基礎語法等。第5、6章介紹Java面向對象編程、異常處理機制及包的概念,全面討論了面向對象程序設計的思想方法及在Java語言中的實現(xiàn)。通過這部分的學習,讀者對面向對象程序設計的思想在Java中的應用就會有比較完整的認識。第7、8章介紹Java的常用系統(tǒng)類和I/O流。第9章介紹Java的GUI圖形用戶界面技術。通過這部分的學習,使讀者達到能夠設計專業(yè)化圖形用戶界面的能力。第10、11章介紹線程和網(wǎng)絡編程技術。第12章介紹Java與各種數(shù)據(jù)庫的連接方法及應用。第13章介紹Android程序開發(fā)基礎知識。
綜上所述,本書具有重項目實踐、重理論要點、采用案例匯總知識點、力求體現(xiàn)實戰(zhàn)性等特點,使讀者逐步具備利用Java來開發(fā)應用程序的能力。教材內容充實、結構合理,每章均配有理論練習題及上機實訓題。本書集知識性、實踐性和操作性于一體,具有內容安排合理、層次清楚、圖文并茂、通俗易懂、實例豐富等特點。
本書由長春大學計算機學院楊麗萍和王薇,以及吉林工商學院張焱焱擔任主編,參加編寫的人員還有宋全記、黃超和劉艷。全書由楊麗萍統(tǒng)稿并完成第1、2、3章編寫,第4、11章由王薇編寫,第5、6章由長春大學劉艷編寫,第7、8章由長春大學計算機學院黃超編寫,第9、10章及附錄部分由四川建筑職業(yè)技術學院信息工程系宋全記編寫,第12、13章由張焱焱編寫完成。全書案例部分得到北京云班科技有限公司的大力支持。
由于編者水平有限,加之本書內容覆蓋面廣,書中難免有不妥之處,敬請廣大讀者批評指正。
編 者
2018年5月
第1章 Java簡介 1
1.1 Java語言簡介 1
1.1.1 Java語言發(fā)展歷史 1
1.1.2 Java語言特點 2
1.2 Java平臺及主要應用方向 4
1.3 Java的運行機制及JVM 5
1.4 Java的相關術語 6
1.4.1 什么是JDK 6
1.4.2 什么是JRE 7
1.5 Java開發(fā)環(huán)境的搭建 7
1.5.1 JDK的安裝 7
1.5.2 MyEclipse的安裝 11
1.6 Java程序的編寫與運行 13
1.6.1 第一個Java程序 13
1.6.2 第一個Applet程序 15
1.6.3 使用MyEclipse運行Java程序 16
1.7 Java程序的一些特殊語句 20
1.7.1 輸出語句 20
1.7.2 注釋語句 21
1.8 生成Java文檔 22
1.9 本章小結 24
理論練習題 25
上機實訓題 26
第2章 Java基礎 27
2.1 面向對象的基本概念 27
2.1.1 類和對象 27
2.1.2 屬性與方法 27
2.1.3 對象的繼承 27
2.1.4 對象的重用 28
2.1.5 對象的封裝 28
2.1.6 對象的多態(tài)性 29
2.2 Java語言中類的定義 29
2.2.1 類的屬性 29
2.2.2 類的方法 30
2.2.3 案例分析:一個簡單的Java程序 32
2.3 常量和變量 33
2.3.1 常量 33
2.3.2 變量 33
2.3.3 標識符和關鍵字 34
2.4 數(shù)據(jù)類型 35
2.4.1 基本數(shù)據(jù)類型 35
2.4.2 各類型數(shù)據(jù)間的相互轉換 38
2.5 運算符和表達式 40
2.5.1 算術運算符和算術表達式 40
2.5.2 案例分析:溫度轉換 42
2.5.3 賦值運算符和賦值表達式 43
2.5.4 關系運算符和關系表達式 44
2.5.5 邏輯運算符和邏輯表達式 45
2.5.6 條件運算符和條件表達式 47
2.5.7 位運算符和移位運算符 47
2.5.8 運算符優(yōu)先級 50
2.5.9 案例分析:運算符優(yōu)先級 50
2.6 本章小結 51
理論練習題 52
上機實訓題 52
第3章 程序流程控制 54
3.1 程序的流程控制 54
3.2 選擇結構 55
3.2.1 if語句 55
3.2.2 案例分析:閏年問題 59
3.2.3 switch語句 59
3.2.4 案例分析:劃分成績等級 62
3.3 循環(huán)結構 63
3.3.1 for語句 63
3.3.2 案例分析:計算平均成績1 64
3.3.3 while語句 65
3.3.4 案例分析:計算平均成績2 66
3.3.5 do-while語句 67
3.4 跳轉語句 69
3.4.1 break語句 69
3.4.2 continue語句 70
3.4.3 return語句 70
3.5 本章小結 71
理論練習題 71
上機實訓題 72
第4章 數(shù)組 73
4.1 一維數(shù)組 73
4.1.1 數(shù)組的聲明 73
4.1.2 數(shù)組的創(chuàng)建 74
4.1.3 數(shù)組的訪問 75
4.2 多維數(shù)組 76
4.2.1 二維數(shù)組聲明與初始化 76
4.2.2 二維數(shù)組元素的引用 77
4.3 字符數(shù)組 78
4.3.1 字符數(shù)組與字符串 78
4.3.2 字符串 79
4.3.3 字符串數(shù)組 79
4.4 數(shù)組作為方法的參數(shù) 80
4.5 本章小結 80
理論練習題 81
上機實訓題 81
第5章 類和對象 83
5.1 對象的定義和引用 83
5.1.1 構造方法 83
5.1.2 對象的創(chuàng)建 84
5.1.3 對象的使用 86
5.1.4 對象的銷毀 86
5.2 案例分析:銀行賬戶對象的創(chuàng)建 86
5.3 靜態(tài)成員與實例成員 87
5.3.1 靜態(tài)屬性與實例屬性 88
5.3.2 靜態(tài)方法與實例方法 88
5.3.3 靜態(tài)成員與實例成員的特征 88
5.3.4 關鍵字this的使用 90
5.4 方法的重載 91
5.4.1 成員方法的重載 91
5.4.2 構造方法的重載 91
5.5 案例分析:銀行賬戶類構造方法的重載 92
5.6 類的封裝和訪問控制 93
5.6.1 類的封裝 93
5.6.2 訪問控制 94
5.7 案例分析:簡單的銀行賬戶管理程序 97
5.8 本章小結 102
理論練習題 104
上機實訓題 107
第6章 類和對象的擴展 108
6.1 類的繼承 108
6.1.1 繼承的引入 108
6.1.2 子類的定義和使用 109
6.1.3 成員變量的隱藏 110
6.1.4 方法的覆蓋 111
6.1.5 super關鍵字 112
6.1.6 final關鍵字 113
6.2 案例分析:VIP銀行賬戶類的創(chuàng)建 113
6.3 多態(tài) 116
6.3.1 多態(tài)的概念 116
6.3.2 向上轉型 117
6.3.3 向下轉型 117
6.4 抽象類 118
6.4.1 抽象方法的聲明 119
6.4.2 抽象類的聲明 119
6.4.3 抽象類的使用 119
6.5 內部類與外部類 121
6.6 包 122
6.6.1 包的創(chuàng)建 122
6.6.2 包的引用 124
6.7 案例分析:改進的銀行賬戶管理程序 125
6.8 接口 129
6.8.1 接口的定義 129
6.8.2 接口的實現(xiàn)與使用 130
6.8.3 接口的繼承 131
6.8.4 嵌套接口 132
6.9 Java異常處理機制 132
6.9.1 異常處理概述 133
6.9.2 異常分類 133
6.9.3 異常的處理 134
6.9.4 自定義異常類 137
6.10 本章小結 138
理論練習題 139
上機實訓題 140
第7章 Java常用系統(tǒng)類 141
7.1 Java API 141
7.2 字符串類 143
7.2.1 String類 143
7.2.2 StringBuffer類 150
7.3 System類與Runtime類 152
7.3.1 System類 152
7.3.2 Runtime類 155
7.4 Math類與Random類 156
7.4.1 Math類 156
7.4.2 Random類 158
7.5 Date類與Calendar類 158
7.5.1 Date類 158
7.5.2 Calendar類 160
7.6 Java基本類型包裝器與泛型 162
7.6.1 基本類型包裝器 162
7.6.2 泛型 163
7.7 集合類 164
7.7.1 ArrayList類 165
7.7.2 LinkedList類 166
7.7.3 HashSet類 168
7.7.4 HashMap類 170
7.8 迭代器 174
7.9 案例分析:利用ArrayList類存儲銀行賬戶類 176
7.10 本章小結 179
理論練習題 180
上機實訓題 183
第8章 Java輸入輸出系統(tǒng) 184
8.1 流的基本概念 184
8.2 字節(jié)流 185
8.3 字符流 187
8.4 File類 188
8.5 System.in和System.out對象 190
8.6 FileInputStream類和FileOutputStream類 191
8.7 FileReader類和FileWriter類 192
8.8 過濾流 193
8.9 文件的隨機訪問 194
8.10 案例分析:多種流的實現(xiàn) 196
8.11 本章小結 197
理論練習題 198
上機實訓題 199
第9章 GUI圖形用戶界面 201
9.1 Swing概述 201
9.2 Swing容器 205
9.2.1 JFrame框架 206
9.2.2 JPanel面板 208
9.2.3 JDialog對話框 209
9.2.4 Swing其他容器 210
9.2.5 案例分析:Swing容器銀行登錄界面綜合實例 211
9.3 常用Swing組件 214
9.3.1 JLabel標簽組件 214
9.3.2 JTextField文本框和JTextArea文本區(qū) 215
9.3.3 JButton按鈕組件 217
9.3.4 JCheckBox復選框和JRadioButton單選按鈕 218
9.3.5 JList列表框組件 219
9.3.6 JComboBox下拉列表框組件 220
9.3.7 JMenu菜單組件 221
9.4 GUI布局管理器 224
9.4.1 FlowLayout流式布局管理器 224
9.4.2 BorderLayout邊界布局管理器 225
9.4.3 CardLayout卡片布局管理器 226
9.4.4 GridLayout網(wǎng)格布局管理器 228
9.4.5 GridBagLayout網(wǎng)格包布局管理器 230
9.4.6 BoxLayout盒式布局管理器 230
9.4.7 案例分析:布局管理器綜合實例 231
9.5 事件處理模型 234
9.5.1 事件處理機制 234
9.5.2 事件處理類 237
9.5.3 事件適配器 239
9.5.4 案例分析:銀行系統(tǒng)事件類綜合應用 240
9.6 本章小結 245
理論練習題 246
上機實訓題 247
第10章 線程 248
10.1 線程概念 248
10.1.1 基本概念 248
10.1.2 生命周期 249
10.2 Java線程機制 250
10.2.1 Thread類創(chuàng)建線程 251
10.2.2 Runnable接口創(chuàng)建線程 253
10.2.3 案例分析:銀行排號系統(tǒng)實例 255
10.2.4 線程優(yōu)先級和調度 256
10.2.5 線程組 260
10.2.6 主線程 261
10.3 線程同步與通信 262
10.3.1 線程同步 262
10.3.2 線程通信 263
10.3.3 死鎖 265
10.3.4 案例分析:銀行業(yè)務線程同步案例 266
10.4 本章小結 270
理論練習題 271
上機實訓題 272
第11章 網(wǎng)絡編程 273
11.1 Java與網(wǎng)絡 273
11.1.1 網(wǎng)絡 273
11.1.2 Java中的網(wǎng)絡功能 276
11.2 URL編程 277
11.2.1 URL簡介 277
11.2.2 URL類 277
11.2.3 構造URL類對象中的異常 278
11.2.4 URL類的獲取URL特征的主要方法 278
11.2.5 從URL直接讀取 278
11.2.6 URLCOnnection類 279
11.3 Socket通信機制 281
11.3.1 使用TCP協(xié)議的Socket網(wǎng)絡編程 281
11.3.2 使用UDP協(xié)議的Socekt網(wǎng)絡編程 285
11.4 案例分析一:C/S模式下的文件內容傳遞 288
11.5 案例分析二:基于TCP/IP的多線程電子白板 290
11.6 本章小結 298
理論練習題 298
上機實訓題 299
第12章 Java數(shù)據(jù)庫操作 300
12.1 數(shù)據(jù)庫基礎知識 300
12.2 SQL語言基本語法 301
12.2.1 數(shù)據(jù)定義命令 301
12.2.2 數(shù)據(jù)查詢語言 302
12.2.3 數(shù)據(jù)更新語言 306
12.3 JDBC訪問數(shù)據(jù)庫 307
12.3.1 JDBC簡介 307
12.3.2 JDBC Driver API 308
12.3.3 JDBC訪問數(shù)據(jù)庫步驟 309
12.4 案例分析:創(chuàng)建JDBC-ODBC連接 310
12.5 預處理語句 314
12.6 可滾動結果集的操作 315
12.6.1 滾動結構集的查詢操作 315
12.6.2 滾動結果集的更新操作 316
12.6.3 滾動結果集的插入與刪除操作 317
12.7 連接其他類型數(shù)據(jù)庫 318
12.7.1 連接Oracle數(shù)據(jù)庫 318
12.7.2 連接MySQL數(shù)據(jù)庫 319
12.7.3 連接SQL Server數(shù)據(jù)庫 320
12.8 本章小結 321
理論練習題 321
上機實訓題 323
第13章 Android應用程序開發(fā) 324
13.1 Android概述 324
13.1.1 Android簡介 324
13.1.2 Android系統(tǒng)架構 325
13.2 Android開發(fā)環(huán)境 328
13.2.1 準備工作 328
13.2.2 進入Eclipse開發(fā)環(huán)境 329
13.2.3 SDK Manager和SDK文件夾 330
13.3 創(chuàng)建FirstAndroidApp程序 331
13.3.1 創(chuàng)建和啟動Android虛擬設備AVD 331
13.3.2 DDMS 333
13.3.3 新建Android工程項目 335
13.3.4 Android工程項目的文件結構 337
13.3.5 Android組件 339
13.3.6 編譯和運行Android應用程序 342
13.3.7 Android應用程序的調試、打包和發(fā)布 343
13.3.8 案例分析 346
13.4 本章小結 351
理論練習題 351
上機實訓題 354
附錄A Eclipse熱鍵大全 355
參考文獻 359