A programming mechanism restricting access to some of the object's components, details of a program's code are hidden, especially parts that other programmers or users need not know and/or use, allows a more abstract view of the methods and classes being used in a program, diverts attention of programmers/users to more important programming tasks