Инкапсуляция означает объединение данных и методов, которые работают с ними, в одном модуле (класс) и скрытие внутреннего состояния за контролируемым общедоступным интерфейсом. Вызывающий код взаимодействует через методы, а не обращаясь напрямую к полям.
Почему это важно
Если кто-то может напрямую изменить поле, вы никогда не сможете гарантировать, что объект остается действительным. Инкапсуляция позволяет классу самостоятельно обеспечивать свои инварианты.
{
balance;
{
(amount <= )
();
(amount > balance)
();
balance -= amount;
}
{ balance; }
}
