In Object-oriented programming, an object is an instance of a Class. Objects are an abstraction. They hold both data, and ways to manipulate the data. The data is usually not visible outside the object. It can only be changed by using a well-specified mechanism (usually called "interface").