1. What are the origins of the object-oriented approach?
2. What primary characteristics should an OID possess?
3. Discuss the various type constructors. How are they used to create complex object structures?
4. Discuss the concept of encapsulation, and tell how it is used to create abstract data types.