What is encapsulation?
- Encapsulation refers to the practice of grouping data (attributes) and methods (functions) within a class
- Using encapsulation ensures that data remains secure and is not accidentally modified or misused by controlling access to them using access modifiers (e.g., public, private)
- It also helps to organise code by keeping related data and methods together within an object
- Encapsulation promotes code reusability, which means the same object or class can be used in different parts of a program without rewriting the code
- Encapsulation uses a concept called “Abstraction” which reduces complexity by hiding the implementation details of the object, making it easier to understand and work with
- Programmers can use methods and classes from other parts of the program without having to understand how that it has been constructed internally
Encapsulation in classes
- Private variables are only accessible within the class itself, and external code cannot access them directly.
- Encapsulation hides how things work inside a class from the outside. External code can interact with the class using public methods without needing to understand its internal details
Encapsulation in classes
Encapsulation in methods
Encapsulation in methods
Examiner Tips and Tricks
- When determining whether a method or attribute is public or private, if neither keyword appears, then assume it is public
Worked Example
A taxi firm is investigating replacing its drivers with self-driving cars.
The code for the self-driving system has been written using an object-oriented programming language.
It recognises obstacles in the road and then classifies them.
The class for
Obstacleis shown below.public class Obstacle private moving //Boolean value private distance //Real number given in metres private direction //Integer given as between 1 and 360 degrees public procedure new(givenMoving, givenDistance, givenDirection) moving = givenMoving distance = givenDistance direction = givenDirection endprocedure public procedure updateDistance(givenDistance) distance = givenDistance endprocedure endclassDescribe an example of encapsulation in the class definition code above.
[2]
How to answer the question:
- Stating that distance is set to private [1 mark]
- To update the value the method updateDistance must be used [1 mark]
Answer:
Example answer that gets full marks: An example of encapsulation in the class definition code above is demonstrated through the attribute “distance” being declared as private. [1].
The “updateDistance()” method serves as a public interface to modify the “distance” attribute. [1]