Инкапсуляция – это механизм программирования, который предоставляет интерфейс объекта для взаимодействия с ним, при этом скрывая внутреннюю реализацию как данных так и обрабатывающих их функций. Например, инкапсуляция позволяет знать о существовании двери; о том открыта она или заперта, но при этом невозможно узнать из чего она сделана (из дерева, из стекловолокна, из стали или другого материала), а уж, тем более, никак не сможет рассмотреть отдельные волокна древесины. В ООП класс представляет собой структуру, способную в полной мере выполнить все требования по сокрытию внутренней структуры компонентов (инкапсулировать) и является базовой единицей инкапсуляции. Способ организации программы, по средствам установления взаимосвязи между объектами, не требует знания внутренней реализации каждого из них. Данная организация становится возможной благодаря реализации в объекте инкапсуляции.
Доступ к данным внутри объекта может быть организован двумя способами:
1. Public -данные и код открыты для доступа из вне, и взаимодействовать с ними могут любые другие части программы.
2. Private -закрытые данные и код доступны только для внутреннего взаимодействия объекта. Другими словами остальные компоненты программы не могут получить доступ к закрытым частям объекта. Обычно открытые части объекта используются для предоставления управляемого интерфейса к закрытым элементам объекта.