Mathematics Education: Taking a Clue
From the Recent Technological Revolution

OO Themes

What does "knowing about itself and knowing about me" have to do with object orientation?

Objects, as opposed to structures, incorporate both data and behavior. But there is more to that. Several themes underlie object-oriented technology. These are [Rumbaugh]:

  • Abstraction

    Abstraction consists of focusing on the essential, inherent aspects of an entity and ignoring its accidental aspects.

  • Classes and instances

    Objects are instances of classes. A class is a definitive Description of a group of objects with similar properties and behaviors. Classes are abstract, objects are concrete. Objects are aware of their class identity.

  • Encapsulation

    Encapsulation (also information hiding) consists of separating the external aspects of an object, which are accessible to other objects, from the internal details of the object, which are hidden from other objects.

    Objects have an outside (how they are seen or interact) and an inside (what they are.)

  • Polymorphism

    Polymorphism is the kindred to the incorporation of data and behavior. From the outside, the same operation Solve or Draw applies to various objects (solvable or, respectively, drawable). The object user is not burdened with the implementation - the inside - of the object. The object knows how to do the job.

  • Inheritance

    Inheritance is a mechanism for sharing similarities among classes while preserving their differences.

In the OO terminology, the individual pieces of data are known as attributes while the operations that objects carry out are known as methods.

Pluggability stems from the concepts of abstraction and encapsulation. The programming libraries on the market are nowadays class libraries. Classes know how to create their instances - objects. If one wants to modify class behavior a little, there is inheritance and polymorphism. Of course, one can always design one's own classes from scratch.

How then information may know about itself and me? Here's one possibility. Implemented as an instance of a class Info, for example, information will know everything about itself. An object of the ComputerUser class will reside on my machine. The "outside" of the class - the public interface - will be queried by the Info object for the necessary particulars. Authentication and protection will be built into the ComputerUser class.

Object oriented technology stresses specifying first what an object is, then how is it used. Implementation is the very last thing. At this point, I am absolutely unconcerned how the classes will be implemented.


  1. Object-Oriented Computing, IEEE Computer Society Press, 1987
  2. J.Rumbaugh et al, Object-Oriented Modeling and Design, Prentice-Hall, 1991

Index|| OO History| OO Themes| Examples