書單推薦 新書推薦 |
Java面向?qū)ο蟪绦蛟O(shè)計 ![]() 本書以面向?qū)ο蠓治雠c設(shè)計思想為核心,講述Java面向?qū)ο蟪绦蛟O(shè)計的主要技術(shù)。本書以最新版本JavaSE為基礎(chǔ),全面介紹Java語言基礎(chǔ)知識、面向?qū)ο缶幊碳夹g(shù)、UML、異常、斷言與日志、輸入輸出、泛型、集合框架、Lambda表達(dá)式、多線程、圖形用戶界面、網(wǎng)絡(luò)編程、使用第三方類庫等內(nèi)容。各章提供經(jīng)過調(diào)試運行的實例,并在相關(guān)章節(jié)中附有配套練習(xí)題。 前 言 Java語言具有純粹的面向?qū)ο蟮奶攸c,非常適合于面向?qū)ο蟪绦蛟O(shè)計的學(xué)習(xí)。本書面向有一定的程序設(shè)計語言基礎(chǔ)的讀者,全面介紹Java語言的面向?qū)ο缶幊膛c設(shè)計技術(shù)。在第2版的基礎(chǔ)上,基于Java語言新引入的特性,結(jié)合作者工程實踐基礎(chǔ)和20余年的Java面向?qū)ο蟪绦蛟O(shè)計課程的教學(xué)經(jīng)驗,對教材內(nèi)容進(jìn)行了新的修訂,并增加了涵蓋課程內(nèi)容的32課時的微課視頻。全書內(nèi)容共分12章。 第1章概述了Java發(fā)展、平臺、開發(fā)環(huán)境,從實例程序出發(fā)介紹Java語言的基本語法,包括標(biāo)識符與關(guān)鍵字、數(shù)據(jù)類型、變量與賦值、運算符與表達(dá)式、枚舉類型、流程控制語句等。 第2章從面向?qū)ο蟮母拍畛霭l(fā),描述了類和對象在Java語言中的實現(xiàn),介紹了類的封裝、方法重載、類成員和實例成員、包的基本概念及UML類圖等技術(shù)。 第3章介紹面向?qū)ο蟪绦蛟O(shè)計的繼承和多態(tài)兩個重要特征,描述了Java語言中類繼承的實現(xiàn)、類中成員的訪問權(quán)限控制、抽象類和接口、多態(tài)及設(shè)計模式。 第4章介紹Java的數(shù)組和字符串編程,包括數(shù)組創(chuàng)建、數(shù)組初始化、數(shù)組相關(guān)操作、多維數(shù)組、可變長參數(shù)、字符串、命令行參數(shù)等內(nèi)容。 第5章講解泛型與集合框架,泛型編程技術(shù)包括泛型類、泛型方法、泛型類的繼承、通配符的使用等相關(guān)技術(shù);集合框架包括集合核心接口、具體實現(xiàn)類和集合算法等內(nèi)容。 第6章介紹Java的異常處理,包括異常機制、處理方法、自定義異常類及其使用、斷言及日志機制。 第7章描述Java多任務(wù)編程,包括線程的概念、實現(xiàn)、控制、同步、線程池、死鎖等內(nèi)容。 第8章講述Java的輸入/輸出處理,包括流的概念、字節(jié)流、字符流、命令行I/O、格式化I/O、對象序列化、文件I/O等的應(yīng)用。 第9章講解基于Swing的GUI編程,包括容器、組件、布局管理器、事件處理和多媒體處理等內(nèi)容。 第10章介紹Java的網(wǎng)絡(luò)編程技術(shù),包括網(wǎng)絡(luò)編程的基本概念、Java網(wǎng)絡(luò)相關(guān)類、TCP通信、UDP通信、使用URL進(jìn)行網(wǎng)絡(luò)通信的方法,以及與服務(wù)器端交互等具體應(yīng)用。 第11章介紹Java訪問數(shù)據(jù)庫的編程技術(shù),包括SQL語言基礎(chǔ)、JDBC、SQLite數(shù)據(jù)庫等的具體應(yīng)用。 第12章介紹使用第三方類庫的編程技術(shù),包括Maven構(gòu)建工具的使用、常用的第三方類庫、通過第三方類庫實現(xiàn)JSON數(shù)據(jù)操作、生成統(tǒng)計圖、處理Word文件等實用性應(yīng)用功能的開發(fā)。 本書定位于面向?qū)ο蟪绦蛟O(shè)計的教學(xué),因此對Java語言的相關(guān)特性做了取舍。例如,函數(shù)式編程僅引入了Lambda表達(dá)式,并未展開對Stream API、函數(shù)式接口等內(nèi)容的詳細(xì)描述;對于Java的反射、正則表達(dá)式、JavaFX等內(nèi)容也沒有涉及。本書對Java的后繼學(xué)習(xí)給出了一些建議,有興趣的讀者可掃描下方二維碼。 本書第1、4、5、6、10、11、12章由陳旭東編寫和修訂,第2、3、7、8、9章由馬迪芳編寫和修訂。徐保民和魏小濤對本書內(nèi)容提出了建設(shè)性的意見并參與了相關(guān)案例的選擇和代碼的調(diào)試。全書最后由陳旭東負(fù)責(zé)定稿。 本書的出版得到了北京交通大學(xué)出版社譚文芳老師的大力支持,北京交通大學(xué)繼續(xù)教育學(xué)院為課程內(nèi)容的微課錄制和編輯提供了極大的幫助,北京交通大學(xué)軟件學(xué)院、計算機與信息技術(shù)學(xué)院、網(wǎng)絡(luò)空間安全學(xué)院、繼續(xù)教育學(xué)院相關(guān)課程的老師也對本書的編寫提出了寶貴意見,在此表示深深的謝意。 本書內(nèi)容可能存在不足和錯誤,懇請各位讀者不吝賜教。聯(lián)系作者的電子郵箱為:chenxd@bjtu.edu.cn(陳旭東)和dfma@bjtu.edu.cn(馬迪芳)。 編 者 2025年10月 目 錄 第1章 Java語言基礎(chǔ)1 1.1 Java語言簡介1 1.1.1 Java發(fā)展1 1.1.2 Java平臺2 1.1.3 Java開發(fā)環(huán)境2 1.2 簡單的Java程序4 1.2.1 編輯Java源文件4 1.2.2 編譯源程序4 1.2.3 運行Java應(yīng)用程序5 1.2.4 程序分析5 1.3 關(guān)鍵字與標(biāo)識符8 1.3.1 關(guān)鍵字8 1.3.2 標(biāo)識符8 1.4 數(shù)據(jù)類型9 1.4.1 整數(shù)類型10 1.4.2 浮點類型10 1.4.3 字符類型10 1.4.4 布爾類型11 1.5 變量聲明與賦值11 1.6 運算符與表達(dá)式12 1.6.1 算術(shù)運算12 1.6.2 關(guān)系運算12 1.6.3 布爾運算13 1.6.4 位運算13 1.6.5 其他運算14 1.6.6 運算符的優(yōu)先級與結(jié)合性15 1.6.7 類型轉(zhuǎn)換15 1.6.8 表達(dá)式16 1.7 枚舉類型17 1.8 流程控制17 1.8.1 if語句17 1.8.2 switch語句18 1.8.3 while語句20 1.8.4 do…while語句20 1.8.5 for語句20 1.8.6 流程轉(zhuǎn)移語句22 習(xí)題23 第2章 類和對象25 2.1 面向?qū)ο蟮能浖_發(fā)過程25 2.2 類和對象的基本概念25 2.3 類的定義26 2.3.1 定義類26 2.3.2 屬性27 2.3.3 構(gòu)造方法28 2.3.4 方法28 2.4 對象的使用31 2.4.1 創(chuàng)建對象31 2.4.2 使用對象31 2.5 封裝33 2.5.1 封裝與信息隱藏33 2.5.2 Getter和Setter方法33 2.6 方法重載34 2.7 this關(guān)鍵字36 2.7.1 使用當(dāng)前對象36 2.7.2 調(diào)用構(gòu)造方法37 2.8 類成員和實例成員38 2.8.1 類屬性和實例屬性38 2.8.2 類方法和實例方法38 2.8.3 類屬性和實例屬性的初始化40 2.9 包和模塊41 2.9.1 包42 2.9.2 模塊43 2.10 嵌套類44 2.10.1 靜態(tài)嵌套類44 2.10.2 內(nèi)部類45 2.10.3 局部類47 習(xí)題49 第3章 繼承和多態(tài)50 3.1 類的繼承50 3.1.1 繼承概念50 3.1.2 繼承實現(xiàn)50 3.1.3 方法覆蓋51 3.1.4 super關(guān)鍵字52 3.1.5 類型轉(zhuǎn)換55 3.1.6 java.lang.Object類57 3.1.7 final關(guān)鍵字61 3.2 訪問控制62 3.2.1 私有訪問權(quán)限63 3.2.2 包訪問權(quán)限63 3.2.3 子類訪問權(quán)限64 3.2.4 公共訪問權(quán)限65 3.3 抽象類與接口65 3.3.1 抽象類66 3.3.2 接口定義67 3.3.3 接口實現(xiàn)68 3.3.4 使用接口類型69 3.4 多態(tài)70 3.4.1 繼承與多態(tài)71 3.4.2 接口與多態(tài)72 3.4.3 多態(tài)的優(yōu)點73 3.5 設(shè)計模式74 3.5.1 單例模式74 3.5.2 策略模式75 習(xí)題77 第4章 數(shù)組與字符串79 4.1 數(shù)組79 4.1.1 創(chuàng)建數(shù)組79 4.1.2 訪問數(shù)組元素80 4.1.3 數(shù)組初始化81 4.1.4 數(shù)組參數(shù)與返回數(shù)組82 4.2 數(shù)組的基本操作84 4.2.1 數(shù)組復(fù)制84 4.2.2 數(shù)組比較86 4.2.3 數(shù)組排序87 4.2.4 數(shù)組查找91 4.3 多維數(shù)組93 4.4 可變參數(shù)的方法95 4.5 字符串96 4.5.1 String96 4.5.2 StringBuffer 和 StringBuilder98 4.6 命令行參數(shù)99 習(xí)題100 第5章 泛型與集合框架101 5.1 泛型101 5.1.1 泛型類型101 5.1.2 泛型方法104 5.1.3 有界類型參數(shù)105 5.1.4 泛型類型的繼承107 5.1.5 通配符108 5.1.6 類型擦除112 5.2 集合框架簡介115 5.2.1 集合接口115 5.2.2 集合實現(xiàn)117 5.2.3 集合算法117 5.3 集合實現(xiàn)118 5.3.1 ArrayList 5.3.2 HashSet 5.3.3 HashMap 5.3.4 LinkedList 5.4 集合算法128 5.4.1 數(shù)據(jù)操作129 5.4.2 排序129 5.4.3 查找130 習(xí)題132 第6章 異常處理機制133 6.1 異常133 6.1.1 異常分類133 6.1.2 常用標(biāo)準(zhǔn)異常類134 6.2 異常處理135 6.2.1 捕獲異常135 6.2.2 方法聲明拋出異常137 6.2.3 拋出異常138 6.2.4 異常鏈139 6.2.5 覆蓋拋出異常的方法140 6.3 自定義異常141 6.3.1 創(chuàng)建自定義異常類142 6.3.2 使用自定義異常142 6.4 日志143 6.4.1 日志記錄器143 6.4.2 使用全局日志記錄器144 6.4.3 使用自定義日志記錄器145 6.4.4 Java主流日志工具146 6.5 斷言146 6.5.1 斷言編譯147 6.5.2 打開與關(guān)閉斷言147 6.5.3 斷言應(yīng)用148 習(xí)題150 第7章 線程151 7.1 線程的概念151 7.2 線程的實現(xiàn)151 7.2.1 繼承Thread類152 7.2.2 實現(xiàn)Runnable接口153 7.2.3 實現(xiàn)Callable 7.2.4 使用Lambda表達(dá)式156 7.2.5 線程的生命周期157 7.3 線程的控制158 7.3.1 暫停線程執(zhí)行158 7.3.2 等待線程結(jié)束158 7.3.3 中斷線程執(zhí)行159 7.3.4 線程優(yōu)先級161 7.3.5 Daemon線程161 7.4 多線程同步162 7.4.1 原子操作162 7.4.2 原子變量163 7.4.3 基于對象鎖的線程同步164 7.4.4 wait()和notify()167 7.5 線程池170 7.5.1 Callable和Future170 7.5.2 Executor接口171 7.5.3 線程池171 7.6 死鎖問題174 習(xí)題174 第8章 輸入/輸出176 8.1 流的概念176 8.1.1 輸入流和輸出流176 8.1.2 字節(jié)流和字符流176 8.1.3 節(jié)點流和處理流177 8.2 字節(jié)流177 8.2.1 InputStream類178 8.2.2 OutputStream類178 8.2.3 字節(jié)流應(yīng)用示例179 8.3 字符流181 8.3.1 Reader類181 8.3.2 Writer類182 8.3.3 字符流應(yīng)用示例182 8.4 命令行I/O183 8.4.1 標(biāo)準(zhǔn)流183 8.4.2 控制臺184 8.5 格式化I/O185 8.5.1 格式化輸入185 8.5.2 格式化輸出188 8.6 對象的序列化和反序列化189 8.7 隨機訪問文件192 8.8 文件NIO195 8.8.1 Path接口195 8.8.2 文件和目錄198 8.8.3 文件和目錄操作200 8.8.4 文件讀寫201 8.8.5 文件和目錄屬性203 8.8.6 目錄遍歷204 習(xí)題208 第9章 圖形用戶界面210 9.1 Swing概述210 9.2 Swing容器210 9.2.1 頂層容器JFrame211 9.2.2 頂層容器JDialog212 9.2.3 通用容器JPanel214 9.2.4 通用容器JScrollPane215 9.2.5 通用容器JSplitPane216 9.2.6 通用容器JToolBar218 9.3 Swing組件218 9.3.1 標(biāo)簽219 9.3.2 按鈕220 9.3.3 復(fù)選框221 9.3.4 單選按鈕221 9.3.5 列表框223 9.3.6 組合框224 9.3.7 文本輸入225 9.3.8 進(jìn)度條227 9.3.9 菜單228 9.4 布局管理器232 9.4.1 BorderLayout232 9.4.2 FlowLayout233 9.4.3 BoxLayout234 9.4.4 GridLayout235 9.4.5 CardLayout236 9.4.6 GridBagLayout238 9.5 事件處理241 9.5.1 事件處理機制241 9.5.2 事件適配器243 9.5.3 內(nèi)部監(jiān)聽器245 9.5.4 匿名監(jiān)聽器245 9.5.5 事件處理實例247 9.6 多媒體251 9.6.1 繪圖252 9.6.2 基本圖形252 9.6.3 顏色和字體253 9.6.4 圖像254 9.6.5 動畫257 習(xí)題259 第10章 網(wǎng)絡(luò)通信260 10.1 網(wǎng)絡(luò)基本概念260 10.1.1 TCP協(xié)議260 10.1.2 UDP協(xié)議261 10.1.3 IP地址和端口261 10.2 Java網(wǎng)絡(luò)功能262 10.2.1 網(wǎng)絡(luò)接口層262 10.2.2 網(wǎng)絡(luò)層263 10.2.3 傳輸層265 10.2.4 應(yīng)用層266 10.3 基于TCP的網(wǎng)絡(luò)通信266 10.3.1 TCP服務(wù)器267 10.3.2 TCP客戶端268 10.3.3 處理多客戶請求271 10.4 基于UDP的網(wǎng)絡(luò)通信274 10.4.1 UDP服務(wù)器275 10.4.2 UDP客戶端276 10.4.3 多播通信278 10.5 使用URL282 10.5.1 創(chuàng)建URL對象283 10.5.2 解析URL284 10.5.3 讀取URL資源內(nèi)容284 10.5.4 使用URL連接285 10.5.5 與Servlet交互287 習(xí)題290 第11章 訪問數(shù)據(jù)庫292 11.1 SQL語言292 11.1.1 關(guān)系數(shù)據(jù)庫簡介292 11.1.2 SQL語言292 11.2 JDBC概述294 11.3 使用JDBC訪問數(shù)據(jù)庫295 11.4 使用SQLite數(shù)據(jù)庫298 11.4.1 SQLite簡介298 11.4.2 SQLite數(shù)據(jù)庫基本操作299 11.4.3 使用帶參數(shù)的SQL語句302 11.5 使用ResultSet更新數(shù)據(jù)庫304 習(xí)題306 第12章 使用第三方類庫307 12.1 Maven構(gòu)建工具307 12.1.1 Maven倉庫308 12.1.2 Maven項目結(jié)構(gòu)309 12.1.3 簡單Maven項目實例309 12.2 常用的第三方類庫313 12.3 使用JSON數(shù)據(jù)314 12.3.1 JSON基本語法314 12.3.2 JSON數(shù)據(jù)解析與生成314 12.4 使用統(tǒng)計圖318 12.5 處理Word文件324 習(xí)題328 參考文獻(xiàn)330
我要評論
|


