Encapsulation کا مطلب ہے کہ ڈیٹا اور اس پر کام کرنے والے methods کو ایک unit (class) کے اندر بندل دیا جائے اور اندرونی state کو ایک controlled public interface کے پیچھے چھپایا جائے۔ Callers براہ راست fields میں تبدیلی کی بجائے methods کے ذریعے تعامل کرتے ہیں۔
state کو کیوں چھپایا جائے
اگر کوئی بھی براہ راست field کو تبدیل کر سکتا ہے، تو آپ کبھی یقینی نہیں بنا سکتے کہ object درست رہے۔ Encapsulation class کو اپنے invariants کو enforce کرنے دیتا ہے۔
{
balance;
{
(amount <= )
();
(amount > balance)
();
balance -= amount;
}
{ balance; }
}
