图书介绍

PROGRAM DEVELOPMENT IN JAVA: ABSTRACTIONPDF|Epub|txt|kindle电子书版本下载

PROGRAM DEVELOPMENT IN JAVA: ABSTRACTION
  • SPECIFICATION 著
  • 出版社: 电子工业出版社
  • ISBN:
  • 出版时间:2006
  • 标注页数:443页
  • 文件大小:41MB
  • 文件页数:467页
  • 主题词:

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

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

热门推荐