Object Oriented


use a uml example to show an object


+---------+
|         |
|  Point  |
+---------+
+ +x: int |
| +y: int |
+----------------------+
| +area(): int         |
| +isOrigin(): boolean |
| +myfnc(int,int): int |
+----------------------+

information hiding
syntactic elision of this/self
classes
inheritance

+-----------------+
| StyledPoint     |
+-----------------+
| +color: Color   |    /* enum types, explain, too */        |\
| +styled: bool   |------------------------------------------| >
+-----------------+                                          |/

[ need to draw uml diagrams better... ]



more points to cover...

- primitive (built-in) vs. user defined
- wrapper objects
- syntactic conventions (e.g., operator->() as operator.() and
 operator*()


then cover binding times of classes, e.g., when static methods fire,
 when
allocators, con/de/structors, dedallocators run, etc.
dynamic vs. static "typing", but types different than o-o classes

- class-less objects, prototypes instance creations, null in-situ
 creation,
Ruby oneof instances -- use classes, but act like class-less.  
 Smalltalk's
class Class.

- base class (Object)