Module 18 Study Guide
Learning Objectives
- Understand the distinction between data types and abstract data types (which is not properly explained in Sebesta)
- Distinguish between encapsulation mechanisms and information hiding mechanisms
- Explain why information hiding and encapsulation are important for implementing data types
- Explain parameterized types and list the advantages of parameterized types
- Distinguish logical from physical encapsulations
- Distinguish naming from non-naming encapsulations
- Give examples of various kinds of encapsulations from various programming languages
- Define and explain various object-oriented terms, such as class, object, subclass, superclass, inheritance
- Describe the difference between single and multiple inheritance and explain the difficulties involved in implementing multiple inheritance
- Explain dynamic method binding and its relationship to inheritance
- Show how class instance records and virtual method tables are used to implement classes and objects in object-oriented programming languages
Resources
- CPL 11-12
- Slides: Lam
Note: Sebesta’s discussion of abstract data types and encapsulation mishandles the notion of abstract data types, and it does not provide an integrated discussion of encapsulation. The slides for this week rectify this situation.
Lab
Please complete the lab for this week: vtables
Deliverables
The test for this module will take place in class on Friday. You will have an opportunity to re-take a different version of the same test next week. If you choose to do the re-take, your grade for this module will be the higher of the two scores.