An Introduction to Object-Oriented Programming
By Timothy Budd
Study Guide for Chapter 6
Learning Objectives
After reading this chapter, you should be able to:
-
Explain how the objects themselves can control the flow of execution in
an object-oriented simulation.
Note that there are few new technical ideas presented in this chapter.
Rather, the intent of the case study is to simply illustrate once again how
it is possible to structure a computer program in such a way that the flow
of execution is controlled and directed by a set of interacting software
components.
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.
-
Give some examples of how the design makes holes, walls, and balls
responsible for their own behavior.
-
By making each graphical object into a separate class, and making each
responsible for a different aspect of behavior, the object-oriented
design is able to support a great deal of information hiding.
This, in turn, leads to programs which are consierably easier to modify
than when conventional techniques are used.
To illustrate this, explain what sections of code would need to be modifed
to produce each of the following changes:
- Colored balls, rather than black and white.
- Walls which absorb a bit of energy when they reflect a ball.
- Holes which make a sound when they absorb a ball.
- Balls which make a sound when they strike.
-
Once you have learned about inheritance (next chapter) you may wish to
return to this case study. We could have made the classes Hole, Wall
and Ball all subclasses of a common parent class, say
GraphicalObject. We could then have factored out the common link
and region fields into the parent class, as well as some of the common
methods. Finally, doing so would have permitted us to maintain a single
common list of graphical objects, rather than separate lists for walls,
balls and holes. Explain how this would then have simplified some of the
methods in this application.
Contents copyright
Timothy Budd, 1995.