An Introduction to Object-Oriented Programming, 3rd Edition 🔍
Timothy A. Budd
Pearson Education Asia Ltd, 3, 2021
英语 [en] · PDF · 52.7MB · 2021 · 📘 非小说类图书 · 🚀/lgli/lgrs/nexusstc/upload/zlib · Save
描述
In An Introduction to Object-Oriented Programming, Timothy Budd provides a language-independent presentation of object-oriented principles, such as objects, methods, inheritance (including multiple inheritance) and polymorphism. Examples are drawn from several different languages, including (among others) C++, C#, Java, CLOS, Delphi, Eiffel, Objective-C and Smalltalk. By examining many languages, the reader is better able to appreciate the general principles that lie beyond the syntax of the individual languages. KEY TOPICS: This new edition presents examples drawn from a wider range of languages, including Eiffel, CLOS, and Python in addition to the mainstream languages, as well as extensive comparisons between C++, C# and Java. Case studies explore the application of polymorphism in the STL in C++ and the AWT in Java. UML notation and diagrams are integrated and utilized throughout. The book also features advanced sections on design patterns, reflection and introspection, network programming, and the implementation of object-oriented languages. MARKET: This book is appropriate for programmers looking to read about the theory behind and functionality of a variety of object-oriented programming languages. It is also useful as a reference.
备用文件名
nexusstc/An Introduction to Object-Oriented Programming/7b7d5e42e54494a03af5737be5c5a0b3.pdf
备用文件名
lgli/An Introduction to Object-Oriented Programming 3rd Edition.pdf
备用文件名
lgrsnf/An Introduction to Object-Oriented Programming 3rd Edition.pdf
备用文件名
zlib/no-category/Timothy A. Budd/An Introduction to Object-Oriented Programming_17442701.pdf
备选标题
Introduction to Object-Oriented Programming, An
备选作者
Budd, Timothy
备用出版商
Globe Fearon Educational Publishing
备用出版商
Addison-Wesley Professional
备用出版商
Da Capo Press, Incorporated
备用出版商
Longman Publishing
备用出版商
Addison Wesley
备用出版商
Hachette Books
备用出版商
Cengage Gale
备用出版商
Basic Books
备用版本
English reprint 3rd ed, Singapore, ©2004
备用版本
United States, United States of America
备用版本
3rd ed., Boston, Massachusetts, 2002
备用版本
Third Edition, PS, 2001
备用版本
October 12, 2001
备用版本
3, 2001
元数据中的注释
producers:
calibre (5.26.0) [http://calibre-ebook.com]
calibre (5.26.0) [http://calibre-ebook.com]
元数据中的注释
{"edition":"3","isbns":["0137464223","0201760312","2001045060","9780137464227","9780201760316"],"last_page":1111,"publisher":"Pearson"}
元数据中的注释
Includes bibliographical references (p. 585-597) and index.
备用描述
About This eBook
Halftitle Page
Title Page
Copyright Page
Preface
Assumed Background ⊡
Obtaining the Source ⊡
Acknowledgments ⊡
Contents
Chapter 1. Thinking Object-Oriented
1.1 ⊡ Why Is OOP Popular?
1.2 ⊡ Language and Thought
1.3 ⊡ A New Paradigm
1.4 ⊡ A Way of Viewing the World
* 1.5 ⊡ Computation as Simulation
* 1.6 ⊡ A Brief History
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 2. Abstraction
2.1 ⊡ Layers of Abstraction
2.2 ⊡ Other Forms of Abstraction
*2.3 ⊡ A Short History of Abstraction Mechanisms
Summary ⊡
Further Information ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 3. Object-Oriented Design
3.1 ⊡ Responsibility Implies Noninterference
3.2 ⊡ Programming in the Small and in the Large
3.3 ⊡ Why Begin with Behavior?
3.4 ⊡ A Case Study in RDD
3.5 ⊡ CRC Cards—Recording Responsibility
3.6 ⊡ Components and Behavior
3.7 ⊡ Software Components
3.8 ⊡ Formalize the Interface
3.9 ⊡ Designing the Representation
3.10 ⊡ Implementing Components
3.11 ⊡ Integration of Components
3.12 ⊡ Maintenance and Evolution
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 4. Classes and Methods
4.1 ⊡ Encapsulation
4.2 ⊡ Class Definitions
4.3 ⊡ Methods
*4.4 ⊡ Variations on Class Themes
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 5. Messages, Instances, and Initialization
5.1 ⊡ Message-Passing Syntax
5.2 ⊡ Statically and Dynamically Typed Languages
5.3 ⊡ Accessing the Receiver from within a Method
5.4 ⊡ Object Creation
5.5 ⊡ Pointers and Memory Allocation
5.6 ⊡ Constructors
5.7 ⊡ Destructors and Finalizers
*5.8 ⊡ Metaclasses in Smalltalk
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 6. A Case Study: The Eight-Queens Puzzle
6.1 ⊡ The Eight-Queens Puzzle
6.2 ⊡ Using Generators
6.3 ⊡ The Eight-Queens Puzzle in Several Languages
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 7. A Case Study: A Billiards Game
7.1 ⊡ The Elements of Billiards
7.2 ⊡ Graphical Objects
7.3 ⊡ The Main Program
7.4 ⊡ Using Inheritance
Summary ⊡
Further Information ⊡
Self-Study Questions ⊡
Exercises
Chapter 8. Inheritance and Substitution
8.1 ⊡ An Intuitive Description of Inheritance
8.2 ⊡ Inheritance in Various Languages
8.3 ⊡ Subclass, Subtype, and Substitution
8.4 ⊡ Overriding and Virtual Methods
8.5 ⊡ Interfaces and Abstract Classes
8.6 ⊡ Forms of Inheritance
*8.7 ⊡ Variations on Inheritance
8.8 ⊡ The Benefits of Inheritance
8.9 ⊡ The Costs of Inheritance
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 9. A Case Study—A Card Game
9.1 ⊡ The Class PlayingCard
9.2 ⊡ Data and View Classes
9.3 ⊡ The Game
9.4 ⊡ Card Piles—Inheritance in Action
9.5 ⊡ Playing the Polymorphic Game
9.6 ⊡ The Graphical User Interface
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 10. Subclasses and Subtypes
10.1 ⊡ Substitutability
10.2 ⊡ Subtypes
10.3 ⊡ The Substitutability Paradox
10.4 ⊡ Subclassing for Construction
10.5 ⊡ Dynamically Typed Languages
* 10.6 ⊡ Pre- and Postconditions
10.7 ⊡ Refinement Semantics
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 11. Static and Dynamic Behavior
11.1 ⊡ Static versus Dynamic Typing
11.2 ⊡ Static and Dynamic Classes
11.3 Static versus Dynamic Method Binding
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 12. Implications of Substitution
12.1 ⊡ Memory Layout
12.2 ⊡ Assignment
12.3 ⊡ Copies and Clones
12.4 ⊡ Equality
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 13. Multiple Inheritance
13.1 ⊡ Inheritance as Categorization
13.2 ⊡ Problems Arising from Multiple Inheritance
13.3 Multiple Inheritance of Interfaces
13.4 Inheritance from Common Ancestors
13.5 ⊡ Inner Classes
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 14. Polymorphism and Software Reuse
14.1 ⊡ Polymorphism in Programming Languages
14.2 ⊡ Mechanisms for Software Reuse
14.3 ⊡ Efficiency and Polymorphism
14.4 ⊡ Will Widespread Software Reuse Become Reality?
Summary ⊡
Further Information ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 15. Overloading
15.1 ⊡ Type Signatures and Scopes
15.2 ⊡ Overloading Based on Scopes
15.3 ⊡ Overloading Based on Type Signatures
15.4 ⊡ Redefinition
* 15.5 ⊡ Polyadicity
* 15.6 ⊡ Multi-Methods
Summary ⊡
Further Information ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 16. Overriding
16.1 ⊡ Notating Overriding
16.2 ⊡ Replacement versus Refinement
16.3 ⊡ Deferred Methods
16.4 ⊡ Overriding versus Shadowing
16.5 ⊡ Covariance and Contravariance
* 16.6 ⊡ Variations on Overriding
Summary ⊡
Further Information ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 17. The Polymorphic Variable
17.1 ⊡ Simple Polymorphic Variables
17.2 ⊡ The Receiver Variable
17.3 ⊡ Downcasting
17.4 ⊡ Pure Polymorphism
Summary ⊡
Further Information ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 18. Generics
18.1 ⊡ Template Functions
18.2 ⊡ Template Classes
* 18.3 ⊡ Inheritance in Template Arguments
18.4 ⊡ Case Study—Combining Separate Classes
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 19. Container Classes
19.1 ⊡ Containers in Dynamically Typed Languages
19.2 ⊡ Containers in Statically Typed Languages
* 19.3 ⊡ Restricting Element Types
19.4 ⊡ Element Traversal
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 20. A Case Study: The STL
20.1 ⊡ Iterators
20.2 ⊡ Function Objects
20.3 ⊡ Example Program—An Inventory System
20.4 ⊡ Example Program—Graphs
20.5 ⊡ A Concordance
20.6 ⊡ The Future of OOP
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 21. Frameworks
21.1 ⊡ Reuse and Specialization
21.2 ⊡ Example Frameworks
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 22. An Example Framework: The AWT and Swing
22.1 ⊡ The AWT Class Hierarchy
22.2 ⊡ The Layout Manager
22.3 ⊡ Listeners
22.4 ⊡ User Interface Components
22.5 ⊡ Case Study: A Color Display
22.6 ⊡ The Swing Component Library
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 23. Object Interconnections
23.1 ⊡ Coupling and Cohesion
23.2 ⊡ Subclass Clients and User Clients
23.3 ⊡ Control of Access and Visibility
23.4 ⊡ Intentional Dependency
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 24. Design Patterns
24.1 ⊡ Controlling Information Flow
24.2 ⊡ Describing Patterns
24.3 ⊡ Iterator
24.4 ⊡ Software Factory
24.5 ⊡ Strategy
24.6 ⊡ Singleton
24.7 ⊡ Composite
24.8 ⊡ Decorator
24.9 ⊡ The Double-Dispatching Pattern
24.10 ⊡ Flyweight
24.11 ⊡ Proxy
24.12 ⊡ Facade
24.13 ⊡ Observer
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 25. Reflection and Introspection
25.1 ⊡ Mechanisms for Understanding
25.2 ⊡ Methods as Objects
25.3 ⊡ Mechanisms for Modification
25.4 ⊡ Metaclasses
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Chapter 26. Distributed Objects
26.1 ⊡ Addresses, Ports, and Sockets
26.2 ⊡ A Simple Client/Server Program
26.3 ⊡ Multiple Clients
26.4 ⊡ Transmitting Objects over a Network
26.5 ⊡ Providing More Complexity
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 27. Implementation
27.1 ⊡ Compilers and Interpreters
27.2 ⊡ The Receiver as Argument
27.3 ⊡ Inherited Methods
27.4 ⊡ Overridden Methods
27.5 ⊡ Name Encoding
27.6 ⊡ Dispatch Tables
27.7 ⊡ Bytecode Interpreters
27.8 ⊡ Just-in-Time Compilation
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Appendix A. Source for the Eight-Queens Puzzle
A.1 ⊡ Eight-Queens in Apple Object Pascal
A.2 ⊡ Eight-Queens in C++
A.3 ⊡ Eight-Queens in Java
A.4 ⊡ Eight-Queens in Objective-C
A.5 ⊡ Eight-Queens in Ruby
A.6 ⊡ Eight-Queens in Smalltalk
Appendix B. Source for the Billiards Game
B.1 ⊡ The Version without Inheritance
B.2 ⊡ The Version with Inheritance
Appendix C. Source for the Solitaire Game
Glossary
References
Index
Code Snippets
Halftitle Page
Title Page
Copyright Page
Preface
Assumed Background ⊡
Obtaining the Source ⊡
Acknowledgments ⊡
Contents
Chapter 1. Thinking Object-Oriented
1.1 ⊡ Why Is OOP Popular?
1.2 ⊡ Language and Thought
1.3 ⊡ A New Paradigm
1.4 ⊡ A Way of Viewing the World
* 1.5 ⊡ Computation as Simulation
* 1.6 ⊡ A Brief History
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 2. Abstraction
2.1 ⊡ Layers of Abstraction
2.2 ⊡ Other Forms of Abstraction
*2.3 ⊡ A Short History of Abstraction Mechanisms
Summary ⊡
Further Information ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 3. Object-Oriented Design
3.1 ⊡ Responsibility Implies Noninterference
3.2 ⊡ Programming in the Small and in the Large
3.3 ⊡ Why Begin with Behavior?
3.4 ⊡ A Case Study in RDD
3.5 ⊡ CRC Cards—Recording Responsibility
3.6 ⊡ Components and Behavior
3.7 ⊡ Software Components
3.8 ⊡ Formalize the Interface
3.9 ⊡ Designing the Representation
3.10 ⊡ Implementing Components
3.11 ⊡ Integration of Components
3.12 ⊡ Maintenance and Evolution
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 4. Classes and Methods
4.1 ⊡ Encapsulation
4.2 ⊡ Class Definitions
4.3 ⊡ Methods
*4.4 ⊡ Variations on Class Themes
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 5. Messages, Instances, and Initialization
5.1 ⊡ Message-Passing Syntax
5.2 ⊡ Statically and Dynamically Typed Languages
5.3 ⊡ Accessing the Receiver from within a Method
5.4 ⊡ Object Creation
5.5 ⊡ Pointers and Memory Allocation
5.6 ⊡ Constructors
5.7 ⊡ Destructors and Finalizers
*5.8 ⊡ Metaclasses in Smalltalk
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 6. A Case Study: The Eight-Queens Puzzle
6.1 ⊡ The Eight-Queens Puzzle
6.2 ⊡ Using Generators
6.3 ⊡ The Eight-Queens Puzzle in Several Languages
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 7. A Case Study: A Billiards Game
7.1 ⊡ The Elements of Billiards
7.2 ⊡ Graphical Objects
7.3 ⊡ The Main Program
7.4 ⊡ Using Inheritance
Summary ⊡
Further Information ⊡
Self-Study Questions ⊡
Exercises
Chapter 8. Inheritance and Substitution
8.1 ⊡ An Intuitive Description of Inheritance
8.2 ⊡ Inheritance in Various Languages
8.3 ⊡ Subclass, Subtype, and Substitution
8.4 ⊡ Overriding and Virtual Methods
8.5 ⊡ Interfaces and Abstract Classes
8.6 ⊡ Forms of Inheritance
*8.7 ⊡ Variations on Inheritance
8.8 ⊡ The Benefits of Inheritance
8.9 ⊡ The Costs of Inheritance
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 9. A Case Study—A Card Game
9.1 ⊡ The Class PlayingCard
9.2 ⊡ Data and View Classes
9.3 ⊡ The Game
9.4 ⊡ Card Piles—Inheritance in Action
9.5 ⊡ Playing the Polymorphic Game
9.6 ⊡ The Graphical User Interface
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 10. Subclasses and Subtypes
10.1 ⊡ Substitutability
10.2 ⊡ Subtypes
10.3 ⊡ The Substitutability Paradox
10.4 ⊡ Subclassing for Construction
10.5 ⊡ Dynamically Typed Languages
* 10.6 ⊡ Pre- and Postconditions
10.7 ⊡ Refinement Semantics
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 11. Static and Dynamic Behavior
11.1 ⊡ Static versus Dynamic Typing
11.2 ⊡ Static and Dynamic Classes
11.3 Static versus Dynamic Method Binding
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 12. Implications of Substitution
12.1 ⊡ Memory Layout
12.2 ⊡ Assignment
12.3 ⊡ Copies and Clones
12.4 ⊡ Equality
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 13. Multiple Inheritance
13.1 ⊡ Inheritance as Categorization
13.2 ⊡ Problems Arising from Multiple Inheritance
13.3 Multiple Inheritance of Interfaces
13.4 Inheritance from Common Ancestors
13.5 ⊡ Inner Classes
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 14. Polymorphism and Software Reuse
14.1 ⊡ Polymorphism in Programming Languages
14.2 ⊡ Mechanisms for Software Reuse
14.3 ⊡ Efficiency and Polymorphism
14.4 ⊡ Will Widespread Software Reuse Become Reality?
Summary ⊡
Further Information ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 15. Overloading
15.1 ⊡ Type Signatures and Scopes
15.2 ⊡ Overloading Based on Scopes
15.3 ⊡ Overloading Based on Type Signatures
15.4 ⊡ Redefinition
* 15.5 ⊡ Polyadicity
* 15.6 ⊡ Multi-Methods
Summary ⊡
Further Information ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 16. Overriding
16.1 ⊡ Notating Overriding
16.2 ⊡ Replacement versus Refinement
16.3 ⊡ Deferred Methods
16.4 ⊡ Overriding versus Shadowing
16.5 ⊡ Covariance and Contravariance
* 16.6 ⊡ Variations on Overriding
Summary ⊡
Further Information ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 17. The Polymorphic Variable
17.1 ⊡ Simple Polymorphic Variables
17.2 ⊡ The Receiver Variable
17.3 ⊡ Downcasting
17.4 ⊡ Pure Polymorphism
Summary ⊡
Further Information ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 18. Generics
18.1 ⊡ Template Functions
18.2 ⊡ Template Classes
* 18.3 ⊡ Inheritance in Template Arguments
18.4 ⊡ Case Study—Combining Separate Classes
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 19. Container Classes
19.1 ⊡ Containers in Dynamically Typed Languages
19.2 ⊡ Containers in Statically Typed Languages
* 19.3 ⊡ Restricting Element Types
19.4 ⊡ Element Traversal
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 20. A Case Study: The STL
20.1 ⊡ Iterators
20.2 ⊡ Function Objects
20.3 ⊡ Example Program—An Inventory System
20.4 ⊡ Example Program—Graphs
20.5 ⊡ A Concordance
20.6 ⊡ The Future of OOP
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 21. Frameworks
21.1 ⊡ Reuse and Specialization
21.2 ⊡ Example Frameworks
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 22. An Example Framework: The AWT and Swing
22.1 ⊡ The AWT Class Hierarchy
22.2 ⊡ The Layout Manager
22.3 ⊡ Listeners
22.4 ⊡ User Interface Components
22.5 ⊡ Case Study: A Color Display
22.6 ⊡ The Swing Component Library
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 23. Object Interconnections
23.1 ⊡ Coupling and Cohesion
23.2 ⊡ Subclass Clients and User Clients
23.3 ⊡ Control of Access and Visibility
23.4 ⊡ Intentional Dependency
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 24. Design Patterns
24.1 ⊡ Controlling Information Flow
24.2 ⊡ Describing Patterns
24.3 ⊡ Iterator
24.4 ⊡ Software Factory
24.5 ⊡ Strategy
24.6 ⊡ Singleton
24.7 ⊡ Composite
24.8 ⊡ Decorator
24.9 ⊡ The Double-Dispatching Pattern
24.10 ⊡ Flyweight
24.11 ⊡ Proxy
24.12 ⊡ Facade
24.13 ⊡ Observer
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 25. Reflection and Introspection
25.1 ⊡ Mechanisms for Understanding
25.2 ⊡ Methods as Objects
25.3 ⊡ Mechanisms for Modification
25.4 ⊡ Metaclasses
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Chapter 26. Distributed Objects
26.1 ⊡ Addresses, Ports, and Sockets
26.2 ⊡ A Simple Client/Server Program
26.3 ⊡ Multiple Clients
26.4 ⊡ Transmitting Objects over a Network
26.5 ⊡ Providing More Complexity
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Chapter 27. Implementation
27.1 ⊡ Compilers and Interpreters
27.2 ⊡ The Receiver as Argument
27.3 ⊡ Inherited Methods
27.4 ⊡ Overridden Methods
27.5 ⊡ Name Encoding
27.6 ⊡ Dispatch Tables
27.7 ⊡ Bytecode Interpreters
27.8 ⊡ Just-in-Time Compilation
Summary ⊡
Further Reading ⊡
Self-Study Questions ⊡
Exercises ⊡
Appendix A. Source for the Eight-Queens Puzzle
A.1 ⊡ Eight-Queens in Apple Object Pascal
A.2 ⊡ Eight-Queens in C++
A.3 ⊡ Eight-Queens in Java
A.4 ⊡ Eight-Queens in Objective-C
A.5 ⊡ Eight-Queens in Ruby
A.6 ⊡ Eight-Queens in Smalltalk
Appendix B. Source for the Billiards Game
B.1 ⊡ The Version without Inheritance
B.2 ⊡ The Version with Inheritance
Appendix C. Source for the Solitaire Game
Glossary
References
Index
Code Snippets
备用描述
<p><P>In An Introduction to Object-Oriented Programming, Timothy Budd provides a language-independent presentation of object-oriented principles, such as objects, methods, inheritance (including multiple inheritance) and polymorphism. Examples are drawn from several different languages, including (among others) C++, C#, Java, CLOS, Delphi, Eiffel, Objective-C and Smalltalk. By examining many languages, the reader is better able to appreciate the general principles that lie beyond the syntax of the individual languages.<p>This new edition presents examples drawn from a wider range of languages, including Eiffel, CLOS, and Python in addition to the mainstream languages, as well as extensive comparisons between C++, C# and Java. Case studies explore the application of polymorphism in the STL in C++ and the AWT in Java. UML notation and diagrams are integrated and utilized throughout. The book also features advanced sections on design patterns, reflection and introspection, network programming, and the implementation of object-oriented languages.<p>This book is appropriate for programmers looking to read about the theory behind and functionality of a variety of object-oriented programming languages. It is also useful as a reference.</p> <h3>Booknews</h3> <p>Introduces basic concepts of object-oriented programming and design, using examples from C++, Delphi, Java, Objective-C, and Smalltalk. Contains case studies in Java highlighting the differences between languages, and includes chapter critical thinking and programming exercises and source code appendices. This second edition reflects changes in the field since 1988. For advanced undergraduates and graduates familiar with a conventional programing language. Annotation c. Book News, Inc., Portland, OR (booknews.com)</p>
备用描述
Discover the basic concepts of object-oriented programming and the elements of object-oriented design. Timothy Budd teaches objects, class methods, inheritance (including multiple inheritance), polymorphism and principles in a language-independent manner, with examples from five different languages: C++, Delphi, Java, Objective-C, and Smalltalk.
开源日期
2021-10-02
🚀 快速下载
成为会员以支持书籍、论文等的长期保存。为了感谢您对我们的支持,您将获得高速下载权益。❤️
如果您在本月捐款,您将获得双倍的快速下载次数。
🐢 低速下载
由可信的合作方提供。 更多信息请参见常见问题解答。 (可能需要验证浏览器——无限次下载!)
- 低速服务器(合作方提供) #1 (稍快但需要排队)
- 低速服务器(合作方提供) #2 (稍快但需要排队)
- 低速服务器(合作方提供) #3 (稍快但需要排队)
- 低速服务器(合作方提供) #4 (稍快但需要排队)
- 低速服务器(合作方提供) #5 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #6 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #7 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #8 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #9 (无需排队,但可能非常慢)
- 下载后: 在我们的查看器中打开
所有选项下载的文件都相同,应该可以安全使用。即使这样,从互联网下载文件时始终要小心。例如,确保您的设备更新及时。
外部下载
-
对于大文件,我们建议使用下载管理器以防止中断。
推荐的下载管理器:JDownloader -
您将需要一个电子书或 PDF 阅读器来打开文件,具体取决于文件格式。
推荐的电子书阅读器:Anna的档案在线查看器、ReadEra和Calibre -
使用在线工具进行格式转换。
推荐的转换工具:CloudConvert和PrintFriendly -
您可以将 PDF 和 EPUB 文件发送到您的 Kindle 或 Kobo 电子阅读器。
推荐的工具:亚马逊的“发送到 Kindle”和djazz 的“发送到 Kobo/Kindle” -
支持作者和图书馆
✍️ 如果您喜欢这个并且能够负担得起,请考虑购买原版,或直接支持作者。
📚 如果您当地的图书馆有这本书,请考虑在那里免费借阅。
下面的文字仅以英文继续。
总下载量:
“文件的MD5”是根据文件内容计算出的哈希值,并且基于该内容具有相当的唯一性。我们这里索引的所有影子图书馆都主要使用MD5来标识文件。
一个文件可能会出现在多个影子图书馆中。有关我们编译的各种数据集的信息,请参见数据集页面。
有关此文件的详细信息,请查看其JSON 文件。 Live/debug JSON version. Live/debug page.