Java - enkapsulacja
Encapsulationjest jedną z czterech podstawowych koncepcji OOP. Pozostałe trzy to dziedziczenie, polimorfizm i abstrakcja.
Hermetyzacja w Javie to mechanizm opakowywania danych (zmiennych) i kodu działającego na dane (metody) razem jako pojedyncza jednostka. Podczas hermetyzacji zmienne klasy będą ukryte przed innymi klasami i można do nich uzyskać dostęp tylko za pomocą metod ich bieżącej klasy. Dlatego jest również znany jakodata hiding.
Aby osiągnąć hermetyzację w Javie -
Zadeklaruj zmienne klasy jako prywatne.
Zapewnij publiczne metody ustawiające i pobierające do modyfikowania i przeglądania wartości zmiennych.
Przykład
Poniżej znajduje się przykład pokazujący, jak osiągnąć enkapsulację w Javie -
/* File name : 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;
}
}
Metody public setXXX () i getXXX () są punktami dostępu do zmiennych instancji klasy EncapTest. Zwykle metody te są określane jako pobierające i ustawiające. Dlatego każda klasa, która chce uzyskać dostęp do zmiennych, powinna uzyskać do nich dostęp za pośrednictwem tych metod pobierających i ustawiających.
Dostęp do zmiennych klasy EncapTest można uzyskać za pomocą następującego programu -
/* File name : 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("Name : " + encap.getName() + " Age : " + encap.getAge());
}
}
To da następujący wynik -
Wynik
Name : James Age : 20
Korzyści z kapsułkowania
Pola klasy mogą być tylko do odczytu lub tylko do zapisu.
Klasa może mieć całkowitą kontrolę nad tym, co jest przechowywane w jej polach.