《Java語言程式設計(第3版)》是由沈澤剛主編,2018年清華大學出版社出版的21世紀高等學校計算機類課程創新規劃教材。該教材可作為高等院校計算機專業或相關專業的“Java程式設計”或“面向對象程式設計”課程的教材,也可作為Java認證考試及編程愛好者的參考資料。
該教材以Java SE 8為基礎,講解了Java程式語言、Java面向對象技術和Java核心類庫。全書共18章,主要內容包括Java語言基礎(數據類型、運算符與表達式、程式流程控制)、類與對象基礎、數組與字元串、Java面向對象特徵(類的繼承與多態、內部類與註解類型、接口與Lambda表達式)、常用核心類、泛型與集合框架、異常處理、輸入輸出、JavaFX圖形界面及事件處理、常用控制項、JDBC資料庫編程、並發編程基礎、網路編程等。每章配有編程練習題。
基本介紹
- 書名:Java語言程式設計(第3版)
- 作者:沈澤剛
- ISBN:9787302485520
- 類別:21世紀高等學校計算機類課程創新規劃教材
- 頁數:470頁
- 出版社:清華大學出版
- 出版時間:2018年4月1日
- 裝幀:平裝
- 開本:16開
- 字數:744千字
- CIP核字號:2017237789
成書過程
修訂情況
出版工作
責任編輯 | 封面設計 | 責任校對 | 責任印製 |
---|---|---|---|
魏江江、趙曉寧 | 劉鍵 | 時翠蘭 | 董瑾 |
內容簡介
教材目錄
1.1Java起源與發展1 1.1.1Java的起源1 1.1.2Java的發展歷程2 1.1.3Java語言的優點3 1.2Java平台與開發環境3 1.2.1Java平台與套用領域3 1.2.2JDK、JRE和JVM4 1.2.3Java位元組碼與平台獨立4 1.2.4JDK的下載與安裝5 1.2.5JavaAPI文檔6 1.3Java程式基本結構6 1.3.1Java程式開發步驟6 1.3.2第一個程式分析8 1.4程式文檔風格和注釋9 1.4.1一致的縮進和空白9 1.4.2塊的風格9 1.4.3Java程式注釋10 1.5Eclipse集成開發環境10 1.6小結12 編程練習12 第2章Java語言基礎13 2.1簡單程式的開發13 2.1.1從鍵盤讀取數據14 2.1.2變數與賦值15 2.1.3Java標識符15 2.1.4Java關鍵字16 2.2數據類型16 2.2.1數據類型概述16 2.2.2字面值和常量17 2.2.3整數類型17 2.2.4浮點類型19 2.2.5字元類型20 2.2.6布爾類型21 2.2.7字元串類型22 2.3運算符23 2.3.1算術運算符23 2.3.2關係運算符25 2.3.3邏輯運算符25 2.3.4賦值運算符26 2.3.5位運算符28 2.3.6運算符的優先權和結合性30 2.4數據類型轉換31 2.4.1自動類型轉換31 2.4.2強制類型轉換32 2.4.3表達式中類型自動提升33 2.5小結34 編程練習34 第3章選擇與循環36 3.1選擇36 3.1.1單分支if語句36 3.1.2雙分支if-else語句37 3.1.3嵌套的if語句和多分支的if-else語句39 3.1.4條件運算符40 3.1.5switch語句結構41 3.2循環43 3.2.1while循環43 3.2.2do-while循環45 3.2.3for循環45 3.2.4循環的嵌套47 3.2.5break語句和continue語句47 3.3示例學習49 3.3.1任意抽取一張牌49 3.3.2求最大公約數50 3.3.3列印輸出若干素數51 3.4小結52 編程練習53 第4章類和對象55 4.1面向對象概述55 4.1.1OOP的產生55 4.1.2面向對象的基本概念56 4.1.3面向對象基本特徵57 4.1.4OOP的優勢58 4.2為對象定義類58 4.2.1類的定義59 4.2.2對象的使用62 4.2.3理解棧與堆64 4.2.4用UML圖表示類64 4.3方法設計65 4.3.1如何設計方法65 4.3.2方法的調用67 4.3.3方法重載67 4.3.4構造方法68 4.3.5this關鍵字的使用70 4.3.6方法參數的傳遞71 4.4靜態變數和靜態方法72 4.4.1靜態變數72 4.4.2靜態方法74 4.4.3單例模式75 4.4.4遞歸76 4.5對象初始化和清除77 4.5.1實例變數的初始化77 4.5.2靜態變數的初始化79 4.5.3垃圾回收器80 4.5.4變數作用域和生存期81 4.6包與類的導入82 4.6.1包82 4.6.2類的導入84 4.6.3Java編譯單元85 4.7小結85 編程練習86 第5章數組90 5.1創建和使用數組90 5.1.1數組定義90 5.1.2增強的for循環93 5.1.3數組元素的複製93 5.1.4數組參數與返回值95 5.1.5可變參數的方法96 5.1.6實例:隨機抽取4張牌97 5.1.7實例:一個整數棧類98 5.2Arrays類99 5.2.1數組的排序100 5.2.2元素的查找100 5.2.3數組元素的複製101 5.2.4填充數組元素101 5.2.5數組的比較102 5.3二維數組103 5.3.1二維數組定義103 5.3.2數組元素的使用104 5.3.3數組初始化器105 5.3.4實例:矩陣乘法105 5.3.5不規則二維數組106 5.4小結108 編程練習108 第6章字元串111 6.1String類111 6.1.1創建String類對象111 6.1.2字元串基本操作112 6.1.3字元串查找114 6.1.4字元串轉換為數組114 6.1.5字元串比較115 6.1.6字元串的拆分與組合117 6.1.7String對象的不變性118 6.1.8命令行參數118 6.2格式化輸出119 6.3StringBuilder類和StringBuffer類122 6.3.1創建StringBuilder對象122 6.3.2StringBuilder的訪問和修改122 6.3.3運算符“+”的重載124 6.4小結124 編程練習124 第7章繼承與多態126 7.1類的繼承126 7.1.1類繼承的實現126 7.1.2方法覆蓋129 7.1.3super關鍵字130 7.1.4調用父類的構造方法132 7.2封裝性與訪問修飾符133 7.2.1類的訪問許可權133 7.2.2類成員的訪問許可權134 7.3防止類擴展和方法覆蓋135 7.3.1final修飾類135 7.3.2final修飾方法136 7.3.3final修飾變數136 7.4抽象類137 7.5對象轉換與多態138 7.5.1對象轉換139 7.5.2instanceof運算符140 7.5.3多態與動態綁定140 7.6小結142 編程練習142 第8章Java常用核心類144 8.1Object:終極父類144 8.1.1toString()方法145 8.1.2equals()方法145 8.1.3hashCode()方法146 8.1.4clone()方法147 8.1.5finalize()方法148 8.2Math類149 8.3基本類型包裝類151 8.3.1Character類151 8.3.2Boolean類152 8.3.3創建數值類對象153 8.3.4數值類的常量154 8.3.5自動裝箱與自動拆箱155 8.3.6字元串轉換為基本類型156 8.3.7BigInteger和BigDecimal類156 8.4日期-時間API158 8.4.1本地日期類LocalDate158 8.4.2本地時間類LocalTime160 8.4.3本地日期時間類LocalDateTime161 8.4.4Instant類、Duration類和Period類162 8.4.5其他常用類164 8.4.6日期時間解析和格式化164 8.5小結166 編程練習166 第9章內部類、枚舉和註解168 9.1內部類168 9.1.1成員內部類169 9.1.2局部內部類170 9.1.3匿名內部類171 9.1.4靜態內部類173 9.2枚舉類型175 9.2.1枚舉類型的定義175 9.2.2枚舉類型的方法175 9.2.3枚舉在switch中的套用176 9.2.4枚舉類型的構造方法177 9.3註解類型178 9.3.1註解概述179 9.3.2標準註解179 9.3.3定義註解類型181 9.3.4標準元註解183 9.4小結184 編程練習185 第10章接口與Lambda表達式188 10.1接口188 10.1.1接口定義188 10.1.2接口的實現189 10.1.3接口的繼承190 10.1.4接口類型的使用192 10.1.5常量192 10.2靜態方法和默認方法192 10.2.1靜態方法193 10.2.2默認方法193 10.2.3解決默認方法衝突193 10.3接口示例195 10.3.1Comparable接口195 10.3.2Comparator接口197 10.4Lambda表達式198 10.4.1Lambda表達式簡介198 10.4.2函式式接口199 10.4.3Lambda表達式的語法199 10.4.4預定義的函式式接口200 10.4.5方法引用與構造方法引用204 10.5小結206 編程練習206 第11章泛型與集合209 11.1泛型介紹209 11.1.1泛型類型209 11.1.2泛型方法211 11.1.3通配符(?)的使用212 | 11.1.4有界類型參數213 11.1.5類型擦除214 11.2集合框架215 11.3List接口及實現類217 11.3.1List的操作217 11.3.2ArrayList類218 11.3.3遍歷集合元素219 11.3.4數組轉換為List對象222 11.3.5Vector類和Stack類222 11.4Set接口及實現類222 11.4.1HashSet類222 11.4.2用Set對象實現集合運算223 11.4.3TreeSet類223 11.4.4對象順序224 11.5Queue接口及實現類225 11.5.1Queue接口和Deque接口226 11.5.2ArrayDeque類和LinkedList類227 11.5.3集合轉換228 11.6Map接口及實現類229 11.6.1Map接口229 11.6.2Map接口的實現類230 11.7Collections類233 11.8StreamAPI235 11.8.1流概述236 11.8.2創建與獲得流236 11.8.3連線流和限制流237 11.8.4過濾流238 11.8.5流轉換239 11.8.6流規約241 11.8.7收集結果241 11.8.8基本類型流242 11.8.9並行流243 11.9小結244 編程練習245 第12章異常處理248 12.1異常與異常類248 12.1.1異常的概念248 12.1.2異常類249 12.2異常處理251 12.2.1異常的拋出與捕獲251 12.2.2try-catch-finally語句252 12.2.3用catch捕獲多個異常254 12.2.4聲明方法拋出異常255 12.2.5用throw語句拋出異常257 12.2.6try-with-resources語句258 12.3自定義異常類260 12.4斷言262 12.4.1使用斷言262 12.4.2開啟和關閉斷言263 12.4.3何時使用斷言263 12.4.4斷言示例264 12.5小結266 編程練習266 第13章輸入輸出268 13.1二進制I/O流268 13.1.1File類套用269 13.1.2文本I/O與二進制I/O270 13.1.3InputStream類和OutputStream類270 13.1.4常用二進制I/O流271 13.1.5標準輸入輸出流276 13.2文本I/O流276 13.2.1Reader類和Writer類276 13.2.2FileReader類和FileWriter類277 13.2.3BufferedReader類和BufferedWriter類278 13.2.4PrintWriter類279 13.2.5使用Scanner對象280 13.3對象序列化281 13.3.1對象序列化與對象流281 13.3.2向ObjectOutputStream中寫入對象282 13.3.3從ObjectInputStream中讀出對象282 13.3.4序列化數組284 13.4NIO和NIO.2286 13.4.1檔案系統和路徑286 13.4.2FileSystem類286 13.4.3Path對象287 13.5Files類操作288 13.5.1創建和刪除目錄及檔案288 13.5.2檔案屬性操作289 13.5.3檔案和目錄的複製與移動291 13.5.4獲取目錄的對象292 13.5.5小檔案的讀寫292 13.5.6使用Files類創建流對象294 13.6小結296 編程練習297 第14章JavaFX基礎299 14.1JavaFX概述299 14.1.1JavaGUI編程簡史299 14.1.2JavaFX基本概念300 14.1.3添加JavaFX軟體包300 14.2JavaFX程式基本結構300 14.2.1舞台和場景301 14.2.2場景圖和節點302 14.2.3Application類生命周期方法303 14.2.4JavaFX程式啟動303 14.3JavaFX屬性與綁定304 14.3.1JavaFX屬性304 14.3.2屬性綁定306 14.4JavaFX界面布局307 14.4.1JavaFX坐標系308 14.4.2Pane面板308 14.4.3HBox面板309 14.4.4VBox面板311 14.4.5BorderPane面板311 14.4.6FlowPane面板312 14.4.7GridPane面板313 14.4.8StackPane面板315 14.4.9AnchorPane面板316 14.4.10使用CSS設定控制項樣式317 14.5Color和Font類320 14.5.1Color類320 14.5.2Font類321 14.6JavaFX形狀322 14.6.1Line類322 14.6.2Rectangle類325 14.6.3Circle類325 14.6.4Ellipse類326 14.6.5Arc類326 14.6.6Polygon類327 14.6.7Text類328 14.7Image和ImageView類330 14.8特效實現333 14.8.1陰影效果333 14.8.2模糊效果334 14.8.3倒影效果335 14.8.4發光效果335 14.9小結336 編程練習337 第15章事件處理與常用控制項340 15.1事件處理340 15.1.1事件處理模型340 15.1.2事件類和事件類型341 15.1.3使用事件處理器342 15.1.4動作事件344 15.1.5滑鼠事件346 15.1.6鍵盤事件348 15.1.7為屬性添加監聽器350 15.2常用控制項352 15.2.1Label類352 15.2.2Button類354 15.2.3TextField類和PasswordField類357 15.2.4TextArea類359 15.2.5CheckBox類361 15.2.6RadioButton類363 15.2.7ComboBox類366 15.2.8Slider類369 15.2.9選單設計370 15.2.10FileChooser類376 15.3音頻和視頻380 15.4動畫384 15.4.1過渡動畫384 15.4.2淡出效果385 15.4.3移動效果387 15.4.4縮放效果388 15.4.5旋轉效果389 15.4.6時間軸動畫389 15.5小結392 編程練習393 第16章JDBC資料庫編程395 16.1資料庫系統簡介395 16.1.1關係資料庫簡述395 16.1.2資料庫語言SQL396 16.2MySQL資料庫396 16.2.1MySQL的下載與安裝396 16.2.2使用MySQL命令行工具397 16.2.3使用Navicat運算元據庫400 16.3JDBC體系結構400 16.3.1JDBC訪問資料庫401 16.3.2JDBCAPI介紹401 16.4資料庫訪問步驟402 16.4.1載入驅動程式402 16.4.2建立連線對象403 16.4.3創建語句對象405 16.4.4ResultSet對象405 16.4.5關閉有關對象407 16.5訪問MySQL資料庫407 16.5.1創建資料庫和表407 16.5.2訪問MySQL資料庫408 16.6使用PreparedStatement對象409 16.6.1創建PreparedStatement對象409 16.6.2帶參數的SQL語句410 16.7DAO設計模式411 16.8可滾動和可更新的ResultSet418 16.8.1可滾動的ResultSet418 16.8.2可更新的ResultSet418 16.9小結420 編程練習420 第17章並發編程基礎422 17.1Java多執行緒簡介422 17.2創建任務和執行緒423 17.2.1實現Runnable接口424 17.2.2繼承Thread類425 17.2.3主執行緒426 17.3執行緒的狀態與調度427 17.3.1執行緒的狀態427 17.3.2執行緒的優先權和調度427 17.3.3控制執行緒的結束429 17.4執行緒同步與對象鎖430 17.4.1執行緒衝突與原子操作430 17.4.2方法同步431 17.4.3塊同步432 17.5執行緒協調433 17.5.1不正確的設計433 17.5.2監視器模型435 17.6並發工具437 17.6.1原子變數437 17.6.2Executor和ExecutorService438 17.6.3Callable和Future439 17.6.4使用Lock鎖定對象440 17.7小結442 編程練習443 第18章Java網路編程445 18.1網路概述445 18.1.1網路分層與協定445 18.1.2客戶/伺服器結構446 18.1.3IP位址和域名446 18.1.4連線埠號與套接字447 18.2Java套接字通信448 18.2.1套接字API449 18.2.2簡單的客戶和伺服器程式450 18.2.3服務多個客戶452 18.3數據報通信455 18.3.1數據報通信概述455 18.3.2DatagramSocket類和DatagramPacket類456 18.3.3簡單的UDP通信例子457 18.4URL類編程459 18.4.1理解HTTP459 18.4.2URL和URL類461 18.4.3URLConnection類464 18.5小結467 編程練習467 參考文獻469 |
教學資源
- 配套教材
書名 | 書號 | 出版社 | 出版時間 | 作者 |
---|---|---|---|---|
《Java語言程式設計(第3版)學習指導與習題解析》 | 9787302496021 | 清華大學出版社 | 2018.06.01 | 沈澤剛 |
- 課程資源