Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
About This eBook
Title Page
Copyright Page
Also Available from Dorset House Publishing
Acknowledgments
Contents
Preface
Introduction
I.1. Your background
I.2. Reading guide
I.3. Methodology independence
I.4. Choice of language
1. Numeric Objects in Context
1.1. Data and objects
1.2. Application-domain data
1.3. Non-application-domain data
1.4. Four basic types of elementary data
1.5. Avoiding false composites
1.6. Numeric data representation
2. Review of C++ and Java Facilities and Techniques for Defining Classes
2.1. Our emphasis
2.2. The basic goal—a major difference between C++ and Java
2.3. Constructors and destructor
2.4. Operator overloading in C++
2.5. Operator overloading in Java
2.6. Flow-control constructs
2.7. Manipulating character strings in C++
2.8. Canonical class structure
2.9. Overcoming macrophobia
2.10. Program readability
2.11. Error detection and exceptions
3. Defining a Pure Numeric Data Type
3.1. What does “pure numeric” mean?
3.2. Example: Designing a Complex number class
3.3. Packaging and using the Complex class
3.4. Some other pure numeric classes
3.5. Java equivalents
4. Defining a Numeric Type Having an Additive Unit of Measure
4.1. Unit of measure in modeling real-world data
4.2. A business application example: Money class
4.3. Noting the additive pattern
4.4. Supporting an external Money representation
4.5. More additive classes
4.6. Additive classes in Java
5. The Point-Extent Pattern for Pairs of Numeric Types
5.1. Non-additive numeric types
5.2. Another companion class: CalendarInfo
5.3. Back to Date and Days
5.4. Other Point-Extent pairs
5.5. Date and Days classes in Java
5.6. Other point-extent classes in Java
6. Families of Interacting Numeric Types
6.1. Beyond the patterns
6.2. Example: Electrical circuit quantities
6.3. Greater interaction: Newton’s laws in a straight line
6.4. Extending Newtonian classes to three-dimensional space
6.5. Other families of interacting types
6.6. Summary
6.7. Java versions
7. Role of Inheritance and Polymorphism with Numeric Types
7.1. Review of example classes
7.2. Representation is not specialization
7.3. Usage is not specialization
7.4. A numeric specialization example
7.5. Obstacles to polymorphic functions
7.6. Turning off Java polymorphism
7.7. Why bother with OOP?
8. Programming with Numeric Vectors and Matrices
8.1. Introduction
8.2. Existing facilities
8.3. A C++ base class for all arrays
8.4. Some specialized vector classes
8.5. Operations on numeric arrays
8.6. A basic Matrix class
8.7. Some specialized Matrix classes
8.8. What about Java?
Appendix: Answers to Selected Exercises
Index
← Prev
Back
Next →
← Prev
Back
Next →