Інкапсуляція — надання користувачу компонентів (клас-капсула або інтерфейс) з об'єднаними і захищеними даними, готовими для використання, але не для зміни або розкриття.
Ми можемо створити поле, але не хочемо, щоб хтось його змінював — додаємо полю приватний модифікатор доступу, але водночас дозволяємо використовувати це поле (get і set):
class Test {
private int testField;
public void setTestField(int testField) {
this.testField = testField;
}
public int getTestField() {
return testField;
}
public int getTestFieldDoubled() {
return doubleTheResult(testField);
}
private int doubleTheResult(int param) {
return param*2;
}
}
public class Main {
public static void main(String args[]) {
Test test = new Test();
test.setTestField(4);
int doubledTestField = test.getTestFieldDoubled();
System.out.println(doubledTestField); //8
}
}
Як бачимо, користувач не має змоги використовувати закриті (приватні) дані та методи, але з їхньою допомогою ми можемо реалізовувати методи для особистого використання. Користувачу вони не потрібні.
Висновки з вищевикладеного:
Весь цикл читайте на сторінці Сергія Посьмашного.