Christopher Smith wrote:
> Tracy R Reed wrote:
> > Andrew Lentvorski wrote:
> >>
> >> There are about 9 characteristics that "define" OO (I wish I could
> >> find that article--I think it was on one of the Lisp resources). 
> >> Every language seems to use a slightly different subset of those 9 and
> >> creates religious wars of the "We're real OO!"--"No you're not!" type.
> > 
> > The essential meaning of OO is indeed reasonably well understood. You
> > are talking about the bickerings of pedants.
> 
> Exactly. There's a big difference between "the essential meaning" and
> "the particulars". Nearly all possible subsets of those nine
> characteristics embody the essence of OO, and the ones that don't are
> nonsensical enough that it'd be challenging to construct a language that
> functions (almost said "functional language" and then realized how
> confusing that'd be ;-).

I could find only eight:

1) Class - a class defines the abstract characteristics of a thing,
   including the thing's characteristics (its attributes or properties)
   and the things it can do (its behaviors or methods or features).

2) Object - a particular instance of a class.

3) Method - an object's abilities.

4) Message passing - "The process by which an object sends data to
   another object or asks the other object to invoke a method."

5) Inheritance - In some cases, a class will have "subclasses," more
   specialized versions of a class.

6) Encapsulation - conceals the exact details of how a particular class
   works from objects that use its code or send messages to it.

7) Abstraction - simplifying complex reality by modeling classes
   appropriate to the problem, and working at the most appropriate level
   of inheritance for a given aspect of the problem.

8) Polymorphism - polymorphism is behavior that varies depending on the
   class in which the behavior is invoked, that is, two or more classes
   can react differently to the same message.

-john

-- 
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg

Reply via email to