Introduction to Object-Oriented Programming, an (3RD)

個数:

Introduction to Object-Oriented Programming, an (3RD)

  • 在庫がございません。海外の書籍取次会社を通じて出版社等からお取り寄せいたします。
    通常6~9週間ほどで発送の見込みですが、商品によってはさらに時間がかかることもございます。
    重要ご説明事項
    1. 納期遅延や、ご入手不能となる場合がございます。
    2. 複数冊ご注文の場合、分割発送となる場合がございます。
    3. 美品のご指定は承りかねます。
  • 【入荷遅延について】
    世界情勢の影響により、海外からお取り寄せとなる洋書・洋古書の入荷が、表示している標準的な納期よりも遅延する場合がございます。
    おそれいりますが、あらかじめご了承くださいますようお願い申し上げます。
  • ◆画像の表紙や帯等は実物とは異なる場合があります。
  • ◆ウェブストアでの洋書販売価格は、弊社店舗等での販売価格とは異なります。
    また、洋書販売価格は、ご注文確定時点での日本円価格となります。
    ご注文確定後に、同じ洋書の販売価格が変動しても、それは反映されません。
  • 製本 Paperback:紙装版/ペーパーバック版/ページ数 640 p.
  • 言語 ENG
  • 商品コード 9780201760316
  • DDC分類 005.117

Full Description

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.

Contents

1. Thinking Object-Orineted.


Why is OOP Popular?



Language and Thought.



A New Paradigm.



A Way of Viewing the World.



Computation as Simulation.



A Brief History.



2. Layers of Abstraction.


Layers of Abstraction.



Other Forms of Abstraction.



A Short History of Abstraction Mechanisms.



3. Object-Oriented Design.


Responsibility Implies Noninterference.



Programming in the Small and in the Large.



Why Begin with Behavior.



A Case Study in RDD.



CRC Cards-Recording Responsibility.



Components and Behavior.



Software Components.



Formalize the Interface.



Designing the Representation.



Implementing Components.



Integration of Components.



Maintenance and Evolution.



4. Classes and Methods.


Encapsulation.



Class Definitions.



Methods.



Variations on Class Themes.



5. Messages, Instances, and Initialization.


Message-Passing Syntax.



Accessing the Receiver from Within a Method.



Object Creation.



Pointers.



Memory Recovery.



Constructors.



Constant Values.



Destructors and Finalizers.



Metaclasses in Smalltalk.



6. A Case Study: The Eight Queens Puzzle.


The Eight-Queens Puzzle.



Using Generators.



The Eight-Queens Puzzle in Each Language.



7. A Case Study: A Billiards Game.


The Elements of Billiards.



Graphical Objects.



The Main Program.



Using Inheritance.



8. Inheritance and Substitution.


An Intuitive Description of Inheritance.



Subclass, Subtype, and Substitution.



Interfaces.



Forms of Inheritance.



Inheritance in Various Languages.



Inheritance and Constructors.



The Benefits of Inheritance.



The Costs of Inheritance.



9. Case Study - A Card Game.


The Class Playing Card.



Data and View Classes.



The Game.



Card Piles-Inheritance in Action.



Playing the Polymorphic Game.



The Graphical User Interface.



10. Subclasses and Subtypes.


Substitutability.



Subtypes.



The Substitutability Paradox.



Is This a Problem?



Dynamically Typed Languages.



Pre and Post-conditions.



Scandinavian Semantics.



11. Static and Dynamic Behavior.


Static versus Dynamic Typing.



Static and Dynamic Classes.



Static versus Dynamic Method Binding.



12. Implications of Substitution.


Memory Layout.



Assignment.



Copies and Clones.



Equality.



13. Multiple Inheritance.


Inheritance as Categorization.



Problems Arising from Multiple Inheritance.



Multiple Inheritance of Interfaces.



Inheritance from Common Ancestors.



Inner Classes.



14. Polymorphism and Software Reuse.


Polymorphism in Programming Languages.



Mechanisms for Software Reuse.



Efficiency and Polymorphism.



Will Widespread Software Reuse Become Reality.



15. Overloading.


Type Signature and Scopes.



Overloading Based on Scopes.



Overloading Based on Type Signatures.



Redefinition.



Polyadicity.



Multi-Methods.



16. Overriding.


Notating Overriding.



Replacement versus Refinement.



Deferred Methods.



Overriding versus Shadowing.



Covariance and Contravariance.



Variations on Overriding.



17. The Polymorphic Variable.


Simple Polymorphic Variables.



The Receiver Variable.



Downcasting.



Pure Polymorphism.



18. Generics.


Template Functions.



Template Classes.



Inheritance in Template Arguments.



Case Study-Combining Separate Classes.



19. Container Classes.


Containers in Dynamically Typed Languages.



Containers in Statically-Typed Languages.



Restricting Element Types.



Iteration.



20. A Case Study: The STL.


Iterators.



Function Objects.



Example Program-An Inventory System.



Example Program-Graphs.



A Concordance.



The Future of OOP.



21. Frameworks.


Reuse and Specialization.



Example Frameworks.



22. An Example Framework: TheAWT and Swing.


The AWT Class Hierarchy.



The Layout Manager.



Listeners.



User Interface Components.



Case Study: A Color Display.



The Swing component Library.



23. Object Interconnections.


Coupling and Cohesion.



Subclass Clients and User Clients.



Control of Access and Visibility.



Intentional Dependency.



24. Design Patterns.


Controlling Information Flow.



Describing Patterns.



Iterator.



Software Factory.



Strategy.



Singleton.



Composite.



Decorator.



The Double-Dispatching Pattern.



Flyweight.



Proxy.



Façade.



Observer.



25. Reflection and Introspection.


Mechanisms for Understanding.



Methods of Objects.



Mechanisms for Modification.



Metaclasses.



26. Network Programming.


Addresses, Ports, and Sockets.



A Simple Client/Server Program.



Multiple Clients.



Transmitting Objects over a Network.



Providing More Complexity.



27. Implementation.


Compilers and Interpreters.



The Receiver as Argument.



Inherited Methods.



Overridden Methods.



Name Encoding.



Dispatch Tables.



Bytecode Interpreters.



Just-in-Time Compilation.



A. Source for the Eight-Queens Puzzle.


Eight-Queens in Apple Object Pascal.



Eight-Queens in C++.



Eight-Queens in Java.



Eight-Queens in Objective C.



Eight-Queens in Smalltalk.



B. Source for the Billiards Game.


The Version without Inheritance.



The Verstion with Inheritance.



C. Source for the Solitaire Game.


Glossary.