Skip to main content

Encapsulation

You can take two views of an object:
  • internal - the structure of its data, the algorithms used by its methods
  • external - the interaction of the object with other objects in the program
From the external view, an object is an encapsulated entity, providing services These services define the interface to the object An object should be self-governing Any changes to the object's state (its variables) should be accomplished by that object's methods We should make it difficult, if not impossible, for one object to "reach in" and alter another object's state The user, or client, of an object can request its services, but it should not have to be aware of how those services are accomplished (abstraction - hide details).







Comments

Post a Comment

Popular posts from this blog

Generalization and Specialization

Generalization creates a concept with a broader scope. Specialization creates a concept with a narrower scope. Reusing the interface!  Inheritance: get the interface from the general class. Objects related by inheritance are all of the same type.

Aggregation and Decomposition

Idea: make new objects by combining existing objects. Reusing the implementation!  An aggregation consists of a number of (sub-)concepts which collectively is considered a new concept. A decomposition splits a single concept into a number of (sub-)concepts.

The Class Concept

A class is a collection of objects (or values) and a corresponding set of methods.  A class encapsulates the data representation and makes data access possible at a higher level of abstraction. Example 1: A set of vehicles with operations for starting, stopping, driving, get km/liter, etc. Example 2: A time interval, start time, end time, duration, overlapping intervals, etc. Example 3: A string, upper case, compare, lower case, etc.  str.equals(otherStr) – class/Java style   strcmp(str, otherStr) – C style