Некоторые языки программирования скрывают данные внутри объектов, а другие — нет, по разным причинам. 2
В большинстве языков (например, C++, C#, Java и другие) обеспечивается механизм сокрытия, позволяющий разграничивать доступ к различным частям компонента. 1 Внутреннее состояние объекта (его поля или атрибуты) обычно объявляется как приватное или защищённое, что предотвращает прямой доступ к нему из-за пределов объекта. 4
В других языках, таких как Python, есть инкапсуляция, но нет сокрытия. 2 Например, эти языки реализуют инкапсуляцию, но не предусматривают возможности сокрытия в принципе. 1
Также есть языки, которые жёстко разделяют эти понятия и предоставляют их в семантически различном виде, например, Standard ML и OCaml. 1