Encapsulation का अर्थ है डेटा और उस पर काम करने वाली methods को एक ही इकाई (एक class) के अंदर एकत्र करना और आंतरिक state को छिपाना एक नियंत्रित public interface के पीछे। Callers methods के माध्यम से बातचीत करते हैं, न कि raw fields को सीधे छेड़कर।
State को क्यों छिपाएं
अगर कोई भी field को सीधे बदल सकता है, तो आप कभी यह सुनिश्चित नहीं कर सकते कि object वैध बना रहे। Encapsulation class को अपने invariants को स्वयं लागू करने देता है।
{
balance;
{
(amount <= )
();
(amount > balance)
();
balance -= amount;
}
{ balance; }
}
