The ability of an object to hide its internal data and methods, making only the intended parts of the object programmatically accessible.