Enkapsulasi berarti menggabungkan data dan metode yang beroperasi padanya di dalam satu unit (sebuah kelas) dan menyembunyikan state internal di balik antarmuka publik yang terkontrol. Pemangil berinteraksi melalui metode, bukan dengan mengakses field secara langsung.
Mengapa menyembunyikan state
Jika siapa pun dapat mengubah field secara langsung, Anda tidak dapat menjamin bahwa objek tetap valid. Enkapsulasi memungkinkan kelas untuk menegakkan invariannya sendiri.
{
balance;
{
(amount <= )
();
(amount > balance)
();
balance -= amount;
}
{ balance; }
}
