Java Encapsulation uitgelegd: Veilige Data Verberging & Controle
Wat is Encapsulation?
Encapsulation (inkapseling) is een van de vier fundamentele OOP-concepten. De andere drie zijn inheritance, polymorfisme en abstraction.
Encapsulation in Java is een mechanisme om de data (variabelen) en de code die op de data werkt (methodes) samen te verpakken als een enkele eenheid. Bij encapsulation worden de variabelen van een klasse verborgen voor andere klassen, en kunnen ze alleen worden benaderd via de methodes van hun eigen klasse. Daarom heet het ook data hiding (data verberging).
Hoe Encapsulation in Java te bereiken
- Declareer de variabelen van een klasse als private.
- Bied public setter en getter methodes aan om de waarden van de variabelen te wijzigen en te bekijken.
Voorbeeld
Hier is een voorbeeld dat demonstreert hoe encapsulation in Java werkt:
/* Bestandsnaam: EncapTest.java */
public class EncapTest {
private String name;
private String idNum;
private int age;
public int getAge() { return age; }
public String getName() { return name; }
public String getIdNum() { return idNum; }
public void setAge(int newAge) { age = newAge; }
public void setName(String newName) { name = newName; }
public void setIdNum(String newId) { idNum = newId; }
}
De publieke setXXX() en getXXX() methodes zijn de toegangspunten van de instantievariabelen van de EncapTest-klasse. Normaal worden deze methodes getters en setters genoemd. Elke klasse die toegang wil tot de variabelen, moet dit doen via deze getters en setters.
De variabelen van de EncapTest-klasse kunnen worden benaderd met het volgende programma:
/* Bestandsnaam: RunEncap.java */
public class RunEncap {
public static void main(String args[]) {
EncapTest encap = new EncapTest();
encap.setName("James");
encap.setAge(20);
encap.setIdNum("12343ms");
System.out.print("Naam: " + encap.getName() + " Leeftijd: " + encap.getAge());
}
}
Resultaat:
Naam: James Leeftijd: 20
Voordelen van Encapsulation
- De velden van een klasse kunnen read-only (alleen-lezen) of write-only (alleen-schrijven) worden gemaakt.
- Een klasse kan totale controle hebben over wat er in zijn velden wordt opgeslagen.
Java
- Java's final-sleutelwoord begrijpen: variabelen, methoden en klassen
- Java instanceof operator: een uitgebreide gids
- Java encapsulatie meesteren: een praktische gids tot data hiding
- Java geneste static classes begrijpen: gebruik, verschillen en voorbeelden
- Java anonieme inner classes meesteren: definitie, syntax en praktische voorbeelden
- Java Singleton patroon uitgelegd: hoe veilig te implementeren en gebruiken
- Java Reflectie meesteren: klassen, methoden en velden inspecteren tijdens runtime
- Java ObjectOutputStream: Serialisatie, methoden en praktische voorbeelden
- Java Generics: Herbruikbare, type-veilige code bouwen
- Java-bestandsbewerkingen onder de knie krijgen met java.io – Aanmaken, lezen, schrijven en verwijderen
- Java Encapsulation uitgelegd: Veilige Data Verberging & Controle