Encapsulation หมายถึงการรวมข้อมูลและวิธีการที่ทำงานบนนั้นไว้ในหนึ่งหน่วย (คลาส) และซ่อนสถานะภายในไว้หลังส่วนติดต่อสาธารณะที่ถูกควบคุม ผู้เรียกใช้งานสื่อสารผ่านวิธีการ ไม่ใช่การเข้าถึงฟิลด์โดยตรง
เหตุใดจึงต้องซ่อนสถานะ
หากใครสามารถเปลี่ยนฟิลด์ได้โดยตรง คุณไม่สามารถรับประกันว่าออบเจกต์จะยังคงถูกต้องได้ Encapsulation ให้คลาสบังคับใช้สัญญาคงที่ของตัวเอง
{
balance;
{
(amount <= )
();
(amount > balance)
();
balance -= amount;
}
{ balance; }
}
