Aby stworzyć przejrzysty interfejs klasy
• Dane i zagmatwane funkcje można ukryć Aby kontrolować niezmienniki
• Dzięki ograniczonemu zbiorowi funkcji z dostępem Aby ułatwić debugowanie
• „Zawężenie grona podejrzanych”
Aby umożliwić zmianę reprezentacji (danych składowych)
• Wystarczy zmienić ograniczony zbiór funkcji
• W przypadku składowej publicznej nie można nigdy wiedzieć, kto ją używa