面向對象程序設計 Java版

武春嶺 沈廷傑

  • 面向對象程序設計 Java版-preview-1
  • 面向對象程序設計 Java版-preview-2
面向對象程序設計 Java版-preview-1

買這商品的人也買了...

相關主題

商品描述

針對目前開發行業對Java開發工具應用的技能需求以及計算機類專業對Java編程的基本要求,
本書以“學習目標→任務引導→相關知識→任務實施→綜合訓練”為主線,
在介紹程序語法的基礎上,以小項目開發為實踐落腳點,做到學練結合,提高學習效率:
通過“學習目標”和“任務引導”,讓讀者先瞭解要解決的問題;然後詳細講解相關知識,
幫助讀者奠定技術基礎;進而在“任務實施”引導讀者完成上機操作,體現學以致用,
並通過“拓展訓練”幫助讀者進一步提高編程技術和能力;*後通過“綜合訓練”梳理重要知識點,
促進讀者對重要內容的掌握。
本書整體上採用“項目引導與驅動”模式,將枯燥的程序語法學習融入具體項目案例,
這有利於激發讀者學習興趣,提升學習效果。
此外,本書案例源自實際生活,並參考近期Java編程崗位的技能需求,結構合理,實用性強。
本書可作為高職院校計算機類專業或電子信息類專業Java程序設計教材,
也可作為成人高等學校和其他培訓機構的教材,還可以作為零基礎學習Java讀者的參考圖書。  

作者簡介

武春嶺

廈門大學高等教育質量與評估研究所/教育研究院博士生、重慶電子工程職業學院人工智能與大數據學院院長。
國家“萬人計劃”教學名師,國務院特殊津貼專家,二級教授,
全國通信工業協會雲計算與信息安全校企聯盟理事長,國家雙高建設“信息安全與管理專業群”主持人,
主持或參與多個重大教學質量項目,帶領團隊成功申報國家“十二五”規劃教材22種,自己參與主編11種。


沈廷傑

*級工程師,擁有多年的網絡安全企業工作經驗,擅長數據分析和教學過程設計。
現任重慶電子工程職業學院教師,長期從事一線教學、課程研發、資源庫建設等工作。
主持省部級項目1項;參與*家級項目1項,省部級項目2項。


朱崇來

工程師,擁有多年的軟件開發企業工作經驗,精通Java、Java Web、移動互聯網開發技術。
現任重慶電子工程職業學院教師,長期從事一線課程研發、實訓項目建設、
移動互聯網應用開發專業教學等工作,帶領學生參加各類技能大賽,團隊獲得重慶市二等獎1項、三等獎2項。  
 

目錄大綱


第1章初識Java
學習目標.2
任務引導.2
相關知識.2
1.1 計算機語言. 2
1.1.1 機器語言2
1.1.2 彙編語言3
1.1.3 *級語言3
1.2 Java發展史. 5
1.2.1 Java的誕生5
1.2.2 JDK 1.0發布5
1.2.3 Java 2問世.5
1.2.4 JavaSE 5.0發布6
1.2.5 JDK 7.0發布6
1.2.6 JDK 8.0發布6
1.2.7 JDK 9.0發布7
1.2.8 JDK 10.0發布7
1.3 Java的特點. 7
1.3.1 Java是面向對象的8
1.3.2 Java是平台無關的8
1.3.3 Java語言是健壯的8
1.4 Java程序工作原理. 9
1.4.1 Java虛擬機9
1.4.2 垃圾回收機制11
1.5 Java SE的結構11
1.6 標識符和關鍵字. 12
1.6.1 標識符12
1.6.2 關鍵字13
1.7 Java註解. 13
1.7.1 Java註解.13
1.7.2 內建註解15
1.7.3 自定義註解20
1.8 變量和常量. 26
1.8.1 變量26
1.8.2 常量27
1.9 Java數據類型. 27
1.9.1 Java數據類型概述27
1.9.2 整型29
1.9.3 浮點型30
1.9.4 字符型31
1.9.5 布爾型32
1.9.6 基本數據類型轉換32
1.10 成員變量和局部變量. 34
1.11 Java運算符. 36
1.11.1 算術運算符36
1.11.2 邏輯運算符39
1.11.3 位運算符40
1.12 Java表達式. 42
1.12.1 Java表達式概述42
1.12.2 表達式的運算順序43
任務實施.44
1.13 任務1 開發環境搭建. 44
1.14 任務2 註解應用. 46
1.14.1 子任務1 內建註解應用46
1.14.2 子任務2 自定義註解與元註解應用46
1.15 任務3 Java簡易程序開發46
1.15.1 子任務1 第一個Java程序46
1.15.2 子任務2 工程師月薪計算51
拓展訓練.52
“瑞達系統”獲取用戶輸入52
綜合訓練.56
 

第2章控制結構、方法與數組應用學習目標.59
任務引導.59
相關知識.59
2.1 if語句59
2.1.1 if語句的語法.60
2.1.2 嵌套if語句.65
2.2 switch語句67
2.2.1 switch語句概述.67
2.2.2 switch語句的使用.68
2.3 循環語句. 70
2.3.1 while循環.71
2.3.2 do.while循環74
2.3.3 for循環.75
2.3.4 雙重for循環.77
2.3.5 跳轉語句79
2.4 方法. 79
2.4.1 Java方法概述79
2.4.2 Java方法的使用84
2.4.3 方法遞歸調用86
2.5 數組. 87
2.5.1 一維數組87
2.5.2 引用數據類型90
2.5.3 值傳遞與引用傳遞91
2.5.4 一維數組初始化95
2.6 排序算法. 96
2.6.1 冒泡排序96
2.6.2 插入排序97
2.7 二維數組. 98
2.7.1 二維數組簡介98
2.7.2 二維數組的使用99
任務實施.101
2.8 任務1 控制結構應用. 101
2.8.1 子任務1 商城送禮101
2.8.2 子任務2 學習班結業101
2.8.3 子任務3 功能模塊跳轉102
2.9 任務2 方法應用. 106
2.10 任務3 數組應用115
2.10.1 子任務1 分數數列前20項求和115
2.10.2 子任務2 楊輝三角形打印116
拓展訓練.117
“瑞達系統”刪除和查詢模塊實現117
綜合訓練.124
 

第3章類與對象應用學習目標.127
任務引導.127
相關知識.128
3.1 類和對象概述. 128
3.1.1 面向過程與面向對象128
3.1.2 類和對象的概念129
3.2 Java類. 131
3.2.1 Java類的定義131
3.2.2 Java類的創建和使用132
3.2.3 Java類的簡單運用135
3.2.4 封裝141
3.3 構造方法. 144
3.3.1 構造方法解決問題144
3.3.2 構造方法的使用145
3.4 對像初始化過程. 147
3.4.1 初始化塊148
3.4.2 對像初始化內存結構149
3.5 重載. 151
3.5.1 重載的定義151
3.5.2 重載方法的使用151
3.6 抽象和封裝. 154
3.6.1 類抽象154
3.6.2 類封裝155
3.6.3 方法的實現162
3.7 繼承. 163
3.7.1 繼承的概念164
3.7.2 繼承的使用165
3.7.3 繼承和訪問權限169
3.7.4 方法重寫170
3.7.5 屬性覆蓋172
3.7.6 繼承中的初始化174
3.8 多態. 176
3.8.1 向上轉型176
3.8.2 向下轉型179
3.9 包和訪問控制. 181
3.9.1 Java包182
3.9.2 引用包183
3.9.3 訪問權限186
3.9.4 static關鍵字.190
3.10 抽像類. 195
3.10.1 抽像類的概念195
3.10.2 抽像類的使用195
3.10.3 抽像類的特徵198
3.11 接口. 199
3.11.1 接口的概念199
3.11.2 接口的使用202
3.11.3 接口的特徵205
3.11.4 接口的應用210
任務實施.212
3.12 任務1 類和對象應用. 212
3.12.1 子任務1 封裝學生類和老師類212
3.12.2 子任務2 構造方法初始化學生類和老師類213
3.12.3 子任務3 重載學習方法213
3.13 任務2 包和訪問控制應用213
3.13.1 子任務1 導入類和包213
3.13.2 子任務2 產生隨機數213
3.13.3 子任務3 static關鍵作用範圍測試213
3.14 任務3 抽像類與接口應用214
3.14.1 子任務1 繼承角度實現租車系統214
3.14.2 子任務2 多態角度實現租車系統214
3.14.3 子任務3 抽像類方式實現人與中國人的關係214
3.14.4 子任務4 接口方式實現打印機工作過程214
拓展訓練.214
使用接口優化“租車系統” 214
綜合訓練.215
 

第4章反射機制與常用類應用學習目標.219
任務引導.219
相關知識.219
4.1 Java反射機制. 219
4.2 Class類. 222
4.2.1 Class類概述.222
4.2.2 Class類常用方法.224
4.3 獲取類信息. 225
4.3.1 獲取方法225
4.3.2 獲取屬性229
4.3.3 獲取構造方法232
4.4 動態調用. 235
4.4.1 創建對象236
4.4.2 修改屬性239
4.4.3 調用方法240
4.5 操作動態數組. 242
4.5.1 操作一維動態數組242
4.5.2 操作多維動態數組244
4.6 Java API文檔的使用. 245
4.7 String類246
4.7.1 String類的概念247
4.7.2 String類的使用249
4.8 StringBuffer類. 255
4.8.1 StringBuffer類的使用.255
4.8.2 StringBuffer內存模型.257
4.9 異常處理. 257
4.9.1 異常概述258
4.9.2 異常處理262
4.9.3 常使用注意事項270
4.9.4 拋出異常274
4.9.5 自定義異常類280
任務實施.283
4.10 任務1 反射機制應用. 283
4.10.1 子任務1 Class類常用操作測試283
4.10.2 子任務2 方法結構獲取283
4.10.3 子任務3 動態創建對象、修改屬性和動態調用方法283
4.10.4 子任務4 動態數組實現不定員班級信息管理283
4.11 任務2 常用類應用. 284
4.11.1 子任務1 計算字符串中子字符串出現的次數284
4.11.2 子任務2 完成Java工程師註冊的功能285
4.11.3 子任務3 字符串分割286
4.11.4 子任務4 使用Java API查找String類的方法並使用287
4.12 任務3 異常類應用. 287
4.12.1 子任務1 根據現有程序添加合適的異常處理代碼287
4.12.2 子任務2 手工拋出一個算數異常288
拓展訓練.289
完成提交論文的功能289
綜合訓練.291
 

第5章數據結構應用學習目標.294
任務引導.294
相關知識.294
5.1 數據邏輯結構. 294
5.1.1 數據基本概念294
5.1.2 線性結構295
5.1.3 樹結構296
5.1.4 圖結構297
5.2 數據存儲結構. 298
5.2.1 順序存儲結構298
5.2.2 鍊式存儲結構299
5.3 線性結構. 299
5.3.1 線性表的存儲結構299
5.3.2 線性表301
5.3.3 棧305
5.3.4 隊列308
5.4 查找. 309
5.4.1 無序查找309
5.4.2 有序查找—二分查找310
5.5 排序. 312
5.5.1 選擇排序313
5.5.2快速排序314
任務實施.317
5.6 任務數據結構應用. 317
5.6.1 子任務1 數組方式實現線性表基本操作317
5.6.2 子任務2 數組方式實現棧基本操作318
5.6.3 子任務3 數組方式實現隊列基本操作318
5.6.4 子任務4 二分查找指定數據318
5.6.5 子任務5 對指定數據實現選擇排序318
拓展訓練.318
對指定數據實現快速排序318
綜合訓練.319
 

第6章集合應用學習目標.321
任務引導.321
相關知識.321
6.1 集合框架. 321
6.1.1 集合引入321
6.1.2 Collection接口框架.322
6.1.3 Map接口框架324
6.2 Set接口. 324
6.2.1 Set接口方法324
6.2.2 HashSet使用325
6.2.3 TreeSet使用.326
6.2.4 Comparable接口327
6.3 Iterator迭代器. 329
6.3.1 Iterator接口方法329
6.3.2 Iterator使用330
6.3.3 增強for循環.332
6.4 List接口333
6.4.1 List接口方法.333
6.4.2 ArrayList使用334
6.4.3 LinkedList使用336
6.5 Map接口. 336
6.5.1 HashMap使用336
6.5.2 Map接口方法338
6.6 工具類. 338
6.6.1 Collections工具類常用方法338
6.6.2 Collections工具類使用.340
6.6.3 Comparable與Comparator 341
6.6.4 Arrays工具類使用.345
6.7 自動拆箱和裝箱. 347
6.7.1 自動拆箱和裝箱概念347
6.7.2 自動拆箱和裝箱使用348
6.8 泛型. 349
任務實施.351
6.9 任務1 集合應用. 351
6.9.1 子任務1 實現學生信息存放與刪除351
6.9.2 子任務2 改寫“租車系統”,逆序輸出車輛名稱351
6.9.3 子任務3 為“租車系統”增加附加車輛信息功能351
6.9.4 子任務4 域名與內容關聯存儲實現352
6.10 任務2 集合工具類應用352
6.10.1 子任務1 利用工具類實現學生信息比較352
6.10.2 子任務2 泛型方式實現“租車系統”352
拓展訓練.352
對“瑞達系統”進行結構優化和功能完善352
綜合訓練.353
 

第7章文件操作應用學習目標.355
任務引導.355
相關知識.355
7.1 File類355
7.1.1 File類構造方法.355
7.1.2 File類使用.357
7.1.3 靜態導入359
7.1.4 獲取目錄和文件360
7.2 字節流和字符流. 362
7.2.1 字節流363
7.2.2 字符流366
7.3 其他流. 369
7.3.1 緩衝流369
7.3.2 字節流轉換為字符流371
7.3.3 數據流372
7.4 XML解析. 374
7.4.1 XML概述.374
7.4.2 XML解析.378
任務實施.385
7.5 任務1 文件基本操作應用385
7.5.1 子任務1 獲取目錄和文件路徑385
7.5.2 子任務2 字符流方式實現文件複製385
7.5.3 子任務3 數據流方式存取車輛信息385
7.6 任務2 XML文件操作應用385
7.6.1 子任務1 XML方式存放車輛信息385
7.6.2 子任務2 解析XML車輛信息386
拓展訓練.386
為“租車系統”增加信息保存功能386
綜合訓練.387
 

第8章線程應用學習目標.389
任務引導.389
相關知識.389
8.1 多線程. 389
8.1.1 線程引入389
8.1.2 多線程優勢390
8.1.3 線程狀態392
8.2 創建和使用線程. 393
8.2.1 創建線程類393
8.2.2 多線程使用394
8.3 線程控制. 396
8.3.1 線程控制方法397
8.3.2 終止線程398
8.3.3 線程等待和中斷等待400
8.3.4 等待其他線程完成402
8.3.5 設置線程優先級404
8.3.6 守護線程407
8.4 共享數據. 408
8.4.1 數據不一致408
8.4.2 控制共享數據410
8.4.3 多線程同步412
8.5 線程死鎖和協作. 417
8.5.1 線程死鎖417