图书介绍
PROGRAM DEVELOPMENT IN JAVA: ABSTRACTIONPDF|Epub|txt|kindle电子书版本下载
![PROGRAM DEVELOPMENT IN JAVA: ABSTRACTION](https://www.shukui.net/cover/40/34029330.jpg)
- SPECIFICATION 著
- 出版社: 电子工业出版社
- ISBN:
- 出版时间:2006
- 标注页数:443页
- 文件大小:41MB
- 文件页数:467页
- 主题词:
PDF下载
下载说明
PROGRAM DEVELOPMENT IN JAVA: ABSTRACTIONPDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
1 Introduction1
1.1 Decomposition and Abstraction2
1.2 Abstraction4
1.2.1 Abstraction by Parameterization7
1.2.2 Abstraction by Specification8
1.2.3 Kinds of Abstractions10
1.3 The Remainder of the Book12
Exercises13
2 Understanding Objects in Java15
2.1 Program Structure15
2.2 Packages17
2.3 Objects and Variables18
2.3.1 Mutability21
2.3.2 Method Call Semantics22
2.4 Type Checking24
2.4.1 Type Hierarchy24
2.4.2 Conversions and Overloading27
2.5 Dispatching29
2.6 Types30
2.6.1 Primitive Object Types30
2.6.2 Vectors31
2.7 Stream Input/Output32
2.8 Java Applications33
Exercises35
3 Procedural Abstraction39
3.1 The Benefits of Abstraction40
3.2 Specifications42
3.3 Specifications of Procedural Abstractions43
3.4 Implementing Procedures47
3.5 Designing Procedural Abstractions50
3.6 Summary55
Exercises56
4 Exceptions57
4.1 Specifications59
4.2 The Java Exception Mechanism61
4.2.1 Exception Types61
4.2.2 Defining Exception Types62
4.2.3 Throwing Exceptions64
4.2.4 Handling Exceptions65
4.2.5 Coping with Unchecked Exceptions66
4.3 Programming with Exceptions67
4.3.1 Reflecting and Masking67
4.4 Design Issues68
4.4.1 When to Use Exceptions70
4.4.2 Checked versus Unchecked Exceptions70
4.5 Defensive Programming72
4.6 Summary74
Exercises75
5 Data Abstraction77
5.1 Specifications for Data Abstractions79
5.1.1 Specification of IntSet80
5.1.2 The Poly Abstraction83
5.2 Using Data Abstractions85
5.3 Implementing Data Abstractions86
5.3.1 Implementing Data Abstractions in Java87
5.3.2 Implementation of IntSet87
5.3.3 Implementation of Poly89
5.3.4 Records90
5.4 Additional Methods94
5.5 Aids to Understanding Implementations99
5.5.1 The Abstraction Function99
5.5.2 The Representation Invariant102
5.5.3 Implementing the Abstraction Function and Rep Invariant105
5.5.4 Discussion107
5.6 Properties of Data Abstraction Implementations108
5.6.1 Benevolent Side Effects108
5.6.2 Exposing the Rep111
5.7 Reasoning about Data Abstractions112
5.7.1 Preserving the Rep Invariant113
5.7.2 Reasoning about Operations114
5.7.3 Reasoning at the Abstract Level115
5.8 Design Issues116
5.8.1 Mutability116
5.8.2 Operation Categories117
5.8.3 Adequacy118
5.9 Locality and Modifiability120
5.10 Summary121
Exercises121
6 Iteration Abstraction125
6.1 Iteration in Java128
6.2 Specifying Iterators130
6.3 Using Iterators132
6.4 Implementing Iterators134
6.5 Rep Invariants and Abstraction Functions for Generators137
6.6 Ordered Lists138
6.7 Design Issues143
6.8 Summary144
Exercises144
7 Type Hierarchy147
7.1 Assignment and Dispatching149
7.1.1 Assignment149
7.1.2 Dispatching150
7.2 Defining a Type Hierarchy152
7.3 Defining Hierarchies in Java152
7.4 A Simple Example154
7.5 Exception Types161
7.6 Abstract Classes161
7.7 Interfaces166
7.8 Multiple Implementations167
7.8.1 Lists168
7.8.2 Polynomials171
7.9 The Meaning of Subtypes174
7.9.1 The Methods Rule176
7.9.2 The Properties Rule179
7.9.3 Equality182
7.10 Discussion of Type Hierarchy183
7.11 Summary184
Exercises186
8 Polymorphic Abstractions189
8.1 Polymorphic Data Abstractions190
8.2 Using Polymorphic Data Abstractions193
8.3 Equality Revisited193
8.4 Additional Methods195
8.5 More Flexibility198
8.6 Polymorphic Procedures202
8.7 Summary202
Exercises204
9 Specifications207
9.1 Specifications and Specificand Sets207
9.2 Some Criteria for Specifications208
9.2.1 Restrictiveness208
9.2.2 Generality211
9.2.3 Clarity212
9.3 Why Specifications?215
9.4 Summary217
Exercises219
10 Testing and Debugging221
10.1 Testing222
10.1.1 Black-Box Testing223
10.1.2 Glass-Box Testing227
10.2 Testing Procedures230
10.3 Testing Iterators231
10.4 Testing Data Abstractions232
10.5 Testing Polymorphic Abstractions235
10.6 Testing a Type Hierarchy235
10.7 Unit and Integration Testing237
10.8 Tools for Testing239
10.9 Debugging242
10.10 Defensive Programming249
10.11 Summary251
Exercises252
11 Requirements Analysis255
11.1 The Software Life Cycle255
11.2 Requirements Analysis Overview259
11.3 The Stock Tracker264
11.4 Summary269
Exercises270
12 Requirements Specifications271
12.1 Data Models272
12.1.1 Subsets273
12.1.2 Relations274
12.1.3 Textual Information278
12.2 Requirements Specifications282
12.3 Requirements Specification for Stock Tracker286
12.3.1 The Data Model286
12.3.2 Stock Tracker Specification289
12.4 Requirements Specification for a Search Engine291
12.5 Summary298
Exercises298
13 Design301
13.1 An Overview of the Design Process301
13.2 The Design Notebook304
13.2.1 The Introductory Section304
13.2.2 The Abstraction Sections308
13.3 The Structure of Interactive Programs310
13.4 Starting the Design315
13.5 Discussion of the Method323
13.6 Continuing the Design324
13.7 The Query Abstraction326
13.8 The WordTable Abstraction332
13.9 Finishing Up333
13.10 Interaction between FP and UI334
13.11 Module Dependency Diagrams versus DataModels336
13.12 Review and Discussion338
13.12.1 Inventing Helpers339
13.12.2 Specifying Helpers340
13.12.3 Continuing the Design341
13.12.4 The Design Notebook342
13.13 Top-Down Design343
13.14 Summary344
Exercises345
14 Between Design and Implementation347
14.1 Evaluating a Design347
14.1.1 Correctness and Performance348
14.1.2 Structure353
14.2 Ordering the Program Development Process360
14.3 Summary366
Exercises367
15 Design Patterns369
15.1 Hiding Object Creation371
15.2 Neat Hacks375
15.2.1 Flyweights375
15.2.2 Singletons378
15.2.3 The State Pattern382
15.3 The Bridge Pattern385
15.4 Procedures Should Be Objects Too386
15.5 Composites390
15.5.1 Traversing the Tree393
15.6 The Power of Indirection399
15.7 Publish/Subscribe402
15.7.1 Abstracting Control403
15.8 Summary406
Exercises407
Glossary409
Index427