In conventional, structured programming, actions like print are often isolated from the data by placing them in subroutines or modules. A module typically contains an operation for implementing one simple action. You might have a PRINT module, a SEND module, an ERASE module. These actions are independent of the data they operate on.
But with object-oriented programming, it is the data that is modularized. And each data module includes its own operations for performing actions directly related to its data.
In the case of report, the report object would contain its own built-in PRINT, SEND, ERASE, and FILE operations.
Object-oriented programming lets you model real-world objects--even very complex ones--precisely and elegantly. As a result, object manipulation becomes easier and computer instructions become simpler and can be modified later with minimal effort.
Object-oriented programming hides any information that is not important for acting on an object, thereby concealing the object's complexities. Complex tasks can then be initiated simply, at a very high level.