面向對象數據結構與軟體開發(Java版)

面向對象數據結構與軟體開發(Java版)

《面向對象數據結構與軟體開發(Java版)》是清華大學出版社在2005年3月15日編輯出版的圖書。

基本介紹

  • 書名:面向對象數據結構與軟體開發(Java版)
  • ISBN:9787302099505
  • 定價:128元
  • 出版社:清華大學出版社
  • 出版時間:2005-3-15
  • 裝幀:平裝
圖書簡介,目錄,

圖書簡介

本書全面地介紹了面向對象的編程技術。它提供了全面的算法分析的基本內容,比較了算法和數據結構,以及用於面向對象分析和大型信息系統設計的基本軟體工程原則。它是第一本在中級水平上介紹軟體設計和開發的數據結構書籍。

目錄

第1章軟體開發
1.1介紹
1.2軟體開發過程
1.3評估軟體質量
1.3.1軟體產品中的質量因素
1.3.2衡量軟體質量
1.4軟體設計原則
1.4.1模組化和本地化
1.4.2抽象和信息隱藏
1.4.3鬆散耦合度和高內聚度
1.5軟體設計方法
1.5.1自上而下的設計方法
1.5.2組合式(自下而上)設計
1.5.3面向對象設計
1.6小結
第2章Java基礎
2.1簡介
2.2注釋和空白
2.3命名約定
2.4數據類型
2.4.1基本類型
2.4.2引用類型
2.5字面量和常量
2.6運算符
2.6.1算術運算符
2.6.2增量和減量運算符
2.6.3關係運算符
2.6.4布爾運算符
2.6.5運算的面向對象表示法
2.6.6字元串運算
2.7基本語句
2.7.1賦值語句
2.7.2用於控制台輸入和輸出的語句
2.7.3聲明語句
2.7.4複合語句或塊
2.7.5if語句
2.7.6While語句
2.7.7for語句
2.7.8Switch語句
2.8方法
2.9類聲明
2.10Java程式
2.11對象
2.11.1列印對象
2.11.2對象等同性
2.11.3this對象
2.11.4可訪問性
2.12繼承性
2.13實參傳遞
2.14修復程式錯誤
2.14.1編譯時錯誤
2.14.2運行時錯誤
2.14.3針對錯誤輸出的調試技術
2.15I/O到文本檔案
2.16Java虛擬機
2.17圖形用戶界面I/O
2.18小結
第3章對象和類
3.1介紹
3.2模型和建模
3.3對象
3.3.1什麼是對象
3.3.2狀態
3.3.3行為
3.3.4接口
3.3.5標識
3.3.6對象類型
3.4類和實例
3.5描述類互動作用的關係
3.5.1繼承
3.5.2聚合
3.5.3關聯
3.5.4類圖
3.5.5由語言支持的關係
3.6小結
第4章數組和字元串
4.1一個數組應用程式和問題分析
4.2Java中的數組
4.3問題解決方案
4.4引用類型的存儲結構、賦值和等同性
4.5字元串
4.6StringBuffer類
4.7小結
4.8Java的新特性
第5章數組算法及其分析
5.1算法分析
5.1.1時間複雜度分析
5.1.2從實驗角度比較時間複雜度
5.1.3空間複雜度比較
5.2查找
5.2.1線性搜尋
5.2.2折半查找
5.3排序
5.3.1冒泡排序
5.3.2歸併排序
5.4對象比較、接口以及對象類簡介
5.5數組字典
5.5.1基本字典
5.5.2基本關鍵字字典
5.6小結
5.7Java的新特性
第6章抽象數據類型及其實現
6.1簡介
6.2數據類型
6.3抽象數據類型
6.3.1簡介
6.3.2公理法
6.3.3構建法
6.3.4後置條件法
6.4Java中的抽象數據類型及實現
6.4.1Java中抽象數據類型的語法描述
6.4.2Java中抽象數據類型的語義描述
6.4.3Java中抽象數據類型的實現
6.5斷言檢查和異常
6.6類和類成員的可見性
6.7契約式設計簡介
6.8小結
6.9Java的新特性
第7章列表基礎
7.1一個簡單的列表應用程式
7.2列表抽象數據類型
7.3實現
7.3.1數組的實現
7.3.2鍊表實現
7.3.3處理異常
7.4連結操作實例
7.4.1列表中的最大值
7.4.2列表中某個特定值的位置
7.4.3在一個值的前面插入另外一個值
7.4.4toString()、equals()和clone()方法
7.5有序簡單列表
7.6列表變數
7.6.1尾指針
7.6.2雙向鍊表
7.6.3帶頭結點的鍊表以及循環鍊表
7.7小結
7.8Java的新特性
第8章高級列表概念和Uos數據結構庫
8.1列表工具
8.1.1指針
8.1.2疊代器
8.1.3遍歷器
8.2字典和列表數據結構庫
8.3套用
8.3.1大學圖書館應用程式
8.3.2記憶體管理
8.4多態列表和異質列表
8.5小結
8.6Java的新特性
第9章堆疊
9.1簡介
9.2堆疊ADT
9.3實現
9.4套用
9.4.1括弧匹配
9.4.2Java動態模型
9.5小結
第10章遞歸
10.1遞歸的數學定義
10.2遞歸方法
10.3開發和校驗遞歸程式
10.4簡單遞歸程式的時間分析
10.5遞歸列表方法
10.6小結
10.7Java的新特性
第11章佇列和優先佇列
11.1佇列
11.1.1佇列ADT
11.1.2實現
11.1.3套用
11.2優先佇列
11.2.1優先佇列ADT
11.2.2實現
11.3套用:離散模擬
11.4小結
11.5Java的新特性
第12章面向對象開發:一個實例
12.1簡介
12.2面向對象開發生命周期
12.3軟體開發的責任人
12.4一種面向對象的開發方法
12.5一個簡化的銀行的實例
12.5.1確定系統需求
12.5.2確定系統邊界
12.5.3標識對象和類
12.5.4標識類之間的互動和類的特徵
12.5.5把類分組成子系統
12.5.6確定高層系統體系結構
12.5.7發現更多類的細節並完成類的詳細設計
12.5.8為第一個工作原型寫代碼
12.5.9從質量角度考慮重新檢查系統
12.5.10給第一個工作原型最佳化代碼並完成測試
12.5.11系統的輸出樣本
12.6設計警告
12.7無縫軟體開發
12.8對象模型的優點
12.9小結
12.10Java的新特性
第13章樹
13.1介紹和套用
13.2二叉樹的抽象數據類型
13.3二叉樹
13.3.1實現
13.3.2遍歷
13.3.3二叉排序樹
13.3.4樹的工具
13.3.5Uos庫中的二叉樹數據結構
13.4一般樹
13.5套用
13.5.1更好的字典
13.5.2語言、語法和分析
13.5.3表達式求值
13.6小結
第14章基本問題建模及系統設計
14.1簡介
14.2靜態系統結構建模
14.2.1生成上下文模型
14.2.2如何發現類
14.2.3使用關係描述類互動
14.2.4子系統(包)
14.2.5在系統設計中使用分層結構
14.3系統行為建模
14.3.1用戶、參與者和用例
14.3.2事件
14.3.3時序圖
14.3.4協作圖
14.4學生註冊系統的分析和結構設計
14.4.1確定系統需求
14.4.2確定系統邊界
14.4.3確定對象和類
14.4.4確定類繼承和特性
14.4.5將類組成子系統
14.4.6確定高層系統結構
14.5小結
第15章軟體設計的原則
15.1簡介
15.2契約式設計
15.2.1回顧
15.2.2客戶-供應商契約
15.2.3分包契約和繼承
15.2.4預處理設計
15.2.5其他類型的斷言支持
15.2.6使用斷言的目的
15.3異常處理
15.3.1異常處理的概念
15.3.2基本的異常處理
15.3.3預定義的異常類
15.3.4定義並引發你自己的異常
15.3.5異常處理的策略
15.3.6繼承對異常處理的影響
15.3.7總結以及異常的指導原則
15.4類設計
15.4.1類牛命周期
15.4.2類的狀態空間和行為
15.4.3函式中的副作用
15.4.4方法中有多少參數
15.4.5保持類的簡單性
15.4.6處理異常情況:類的健壯性
15.4.7類級別的設計原則
15.5建立繼承分類
15.5.1一些繼承分類的概覽
15.5.2繼承與聚合
15.5.3繼承分類的一些特性
15.5.4建立優秀繼承分類的原則
15.6面向對象軟體的耦合和內聚
15.6.1耦合
15.6.2內聚
15.7軟體設計中使用模式
15.7.1簡介
15.7.2回顧前面介紹的模式
15.7.3體系結構模式
15.7.4設計模式
15.8子系統設計
15.8.1耦合和內聚
15.8.2子系統的邊界類
15.9一個學生註冊系統的詳細設計
15.10小結
第16章軟體測試
16.1軟體測試基礎
16.1.1基本術語
16.1.2測試的基本概念
16.1.3確定測試用例
16.1.4測試的層次
16.1.5測試的心理
16.1.6測試的原則
16.2人工測試
16.2.1代碼閱讀
16.2.2結構化走查方式
16.3黑盒測試
16.3.1邊界值測試
16.3.2等價類測試
16.4白盒(基於程式的)測試
16.5面向對象的測試
16.5.1測試面向對象軟體中存在的問題
16.5.2方法測試
16.5.3測試遞歸方法
16.5.4基於狀態的類測試
16.5.5繼承對測試的影響
16.5.6面向對象的集成測試
16.5.7面向對象的系統測試
16.6找出並修改動態錯誤
16.6.1計畫調試
16.6.2強力調試
16.6.3回溯調試
16.6.4歸納調試
16.6.5演繹調試
16.6.6調試示例
16.7小結
第17章包、集合和詞典
17.1簡介
17.2位向量的實現
17.3哈希表
17.3.1簡介
17.3.2設計哈希函式
17.3.3衝突解決技術
17.4專用查找樹
17.4.1簡介和動機
17.4.2平衡二叉樹
17.4.32-3樹
17.4.4高效率的數據結構
17.4.5trie樹
17.5更好的優先佇列
17.6小結
第18章排序
18.1簡介
18.2複習基本排序算法
18.3遞歸歸併排序
18.4快速排序
18.5使用遞歸關係表示時間要求
18.5.1遞歸關係推導
18.5.2利用重複替換解決遞歸關係
18.5.3解決分治遞歸關係
18.6堆排序
18.7基數排序
18.8地址-計算排序
18.9小結
第19章圖
19.1圖建模簡介和示例
19.2圖論的基本定義
19.3圖的ADT
19.4路徑、可到達性和連通性
19.5圖的表示方法
19.5.1鄰接矩陣表示法
19.5.2鄰接表表示法
19.5.3可查找的圖
19.6根據圖的矩陣計算路徑
19.6.1使用矩陣乘法計算可到達性
19.6.2有效的到達性算法
19.6.3所有節點對最短路徑算法
19.6.4單源點最短路徑算法
19.7無向圖遍歷
19.7.1廣度優先搜尋
19.7.2深度優先搜尋
19.8套用
19.8.1連通性和分量
19.8.2展開樹
19.8.3拓撲排序
19.8.4調度網路
19.8.5測試中的圖
19.9小結
第20章檔案
20.1簡介
20.2外存儲設備
20.2.1磁帶
20.2.2磁碟
20.3定義和概念
20.4Java中的永久存儲支持
20.4.1簡介
20.4.2基本的位元組輸入/輸出
20.4.3輸入/輸出流小結
20.4.4對象序列化
20.4.5隨機訪問檔案
20.4.6Java緩衝流概述
20.4.7ObjectFileUos類
20.5順序檔案
20.5.1順序檔案的結構
20.5.2處理順序檔案
20.6直接檔案
20.7索引順序檔案
20.7.1索引順序檔案表示法
20.7.2索引順序檔案的實現
20.8B-樹檔案
20.9多關鍵字訪問
20.10小結
附錄AJava附錄
附錄BJava數據結構庫
附錄C數學礎知識

相關詞條

熱門詞條

聯絡我們