Suppose there is a bank account; this bank account has a current balance, but it also has a "history" of things that were done. These fields are however not directly accessible. There are methods like "deposit()" and "withdraw()" and "checkBalance()". Most applications (and other objects) only change this object through this interface. 