An Introduction to Object-Oriented Programming
By Timothy Budd
Study Guide for Chapter 1
Learning Objectives
After reading this chapter, you should be able to:
-
describe different aspects of object-oriented programming
-
explain why the interest in object-oriented programming has increased
so rapidly in the past few years
-
describe the basic concepts of object, class, method, message, instance,
inheritance, encapsulation, information hiding, overriding, and method binding
in an informal, language-independent fashion
Study Questions
You may wish to use the print or save as command
on your web browser to produce a copy of this study guide.
That way you can fill in the answers to the questions as part of
your assimilating the information you learn in this chapter.
-
What are some of the reasons why object-oriented programming has, in the
past decade, become so exceedingly popular?
-
What do we mean by the term ``software crises''?
-
Will simply programming in an object oriented language, such as C++, force
one to write object-oriented programs? explain.
-
What did the term ``paradigm'' originally mean?
What did it mean to the historian of science Thomas Kuhn?
What does it mean in the context of computer languages?
-
Explain what we mean by the assertion that the message passing metaphor
naturally suggests information hiding.
-
Provide informal descriptions of the following terms:
- object
- message
- receiver
- method
- information hiding
- instance
- class
- inheritance
- parent class (or superclass)
- child class (or subclass)
- abstract parent class
-
Explain how object-oriented message passing is different from a
conventional procedure call.
-
Explain how the object-oriented description of computation differs
from the conventional view of a processor reading instructions
and accessing memory locations.
-
Why is it not possible to construct a pure object-oriented language in
which ALL action is performed by sending messages?
-
Discuss how abstraction and information hiding is being used
in each of the following programming language constructs:
-
procedures
-
modules
-
abstract data types
-
objects
-
Rewrite Parnas's information hiding principles as they would apply to
classes, instead of modules.
Contents copyright
Timothy Budd, 1995.