This module introduces you to the basic concept of encapsulation
The following will be discussed:
Why encapsulation is central to object-oriented programming
What classes and objects are
How to write member functions as part of an abstract data type
How to limit access to an ADT's member data and functions
How a class differs from a struct
At the end of the module, you'll be given the opportunity to take a quiz covering these topics.
All data access must occur through the public interface. Thus, the data fields of an object are effectively hidden from the programmer.
The act of hiding data is called encapsulation.
While it is theoretically possible in C++ to leave data fields unencapsulated (by placing them into the public section), this is very uncommon in practice.
Classes in C++ provide static encapsulation of objects by generating code which contains specific knowledge about the internals of encapsulated objects.
Static encapsulation occurs at compile time and therefore cannot directly support the evolution of objects since recompilation of source code is required if the internal layout changes. This also prohibits the use of distributed or persistent objects without first ensuring that the internal representations of the objects match the ones in the compiled code.