This is, unfortunately, one of the most overused buzzwords in the industry. But object-oriented design is very powerful because it facilitates the clean definition of interfaces and makes it possible to provide reusable "software ICs."

Simply stated, object-oriented design is a technique that focuses design on the data (=objects) and on the interfaces to it. To make an analogy with carpentry, an "object-oriented" carpenter would be mostly concerned with the chair he was building, and secondarily with the tools used to make it; a "non-object-oriented" carpenter would think primarily of his tools. Object-oriented design is also the mechanism for defining how modules "plug and play."

--The Java Language, An Overview


Object oriented theorists identify three fundamental aspects of an object oriented language:

  1. User Defined Data Types, i.e. classes
  2. Inheritance
  3. Polymorphism
Java's had all three of these at least since it's first public release. Although C++ fanatics like to argue about operator overloading and multiple inheritance, features Java does not have, these have proven to be more useful in theory than in practice.

Furthermore, Java is fully object oriented. Unlike C++, there are no functions hanging around in global space to do everything you forgot to do inside a class. Everything in Java is either an object, a class, or part of one. Java takes object oriented programming much more seriously than does C++.

Bottom Line: A+

Previous | Next | Outline | Cafe Au Lait Home Page
Copyright 1997 Elliotte Rusty Harold
Last Modified Sunday, March 9, 1997