Object-oriented programming is organised around "objects" rather than "actions", data rather than logic. Historically, a program has been viewed as a logical procedure that takes input data, processes it, and produces output data. The programming challenge was seen as how to write the logic, not how to define the data. Object-oriented programming privileges the objects we want to manipulate rather than the logic required to manipulate them.
The first step in OOP is to identify all the objects you want to manipulate and how they relate to each other, an exercise often known as data modelling. Once an object is identified, you generalise it as a class of objects and define the kind of data it contains and any logic sequences that can manipulate it. Each distinct logic sequence is known as a method. A real instance of a class is called an "object" or, in some environments, an "instance of a class." The object or class instance is what you run in the computer. Its methods provide computer instructions and the class object characteristics provide relevant data. One communicates with objects - and they communicate with each other - with well-defined interfaces called messages. (Source - http://searchwin2000.techtarget.com/sDefinition/0,,sid1_gci212681,00.html)