Programming Encapsulation
- To program encapsulation, you should already have a solid understanding of what encapsulation in Object Oriented Programming (OOP) is.
How do you Define Encapsulation?
Get Methods
- The “get” method is a common naming convention for a type of method that is used to retrieve the value of an object’s private attributes (instance variables).
- These methods are also known as “getter” methods or “accessor” methods.
- The main purpose of a get method is to provide controlled access to the internal state (data) of an object without allowing direct modification.
- Attributes are often declared as private to achieve encapsulation, so cannot be accessed directly from outside the class.
- External code can use the public get methods to read the values of these private attributes (also known as instance variables).
Pseudocode
Pseudocode for a get method
Java
//creating a class called NumberUpdater
public class NumberUpdater {
//setting the private attribute to the value of 10
private int number = 10;
//creating a get method that will return the value store in the number attribute
public int getNumber() {
return number;
}
}Python
#creating a class called NumberUpdater
class NumberUpdater:
#setting the private attribute to the value of 10
def __init__(self):
self.__number = 10
#creating a get method that will return the value stored in the number attribute
@property
def number(self):
return self.__numberSet Methods
- The “set” method is a common naming convention for a type of method that is used to set the value of object’s private instance variables.
- Setter methods, also known as “setter” methods or “mutator” methods
- Generally additional code is written within the method to allow controlled access by enforcing certain conditions or validations before updating the attribute
Pseudocode
Pseudocode for a “setter” method
Java
//creating a class called NumberUpdater
public class NumberUpdater
//setting attribute value to 10
private int oldnumber = 10;
//creating a set method
public void setNumber(int newnumber) {
//if the new number is less than zero
if (newnumber < 0) {
//oldnumber is kept the same
oldnumber = oldnumber;
} else {
//oldnumber is updated with the new number value
oldnumber = newnumber;
}
}
}Python
//creating a class called NumberUpdater
class NumberUpdater:
//setting attribute value to 10
def __init__(self):
self.__oldnumber = 10
//creating a set method
def setNumber(self, newnumber):
//if the new number is less than zero
if newnumber < 0:
//oldnumber is kept the same
self.__oldnumber = self.__oldnumber
else:
//oldnumber is updated with the new number value
self.__oldnumber = newnumber