An object is a self contained item of data that can only be accessed or changed in a controlled way. This prevents side effects- a common problem in procedural (non object ) code where data is globally accessible. Objects can receive or send messages to other objects by calling their methods.
Objects can be defined in terms of existing objects- this is known as inheritance. For an indepth look at OOP, see the article on Object Oriented Programming.

