1.2 An object has an interface
Class is a collection of objects, which has similar characteristic and behaviour.
Class is the type of objects. (ADT-abstract data type)
In object-oriented program, we create new data type using the exsting data type specific to our needs. The programming system gives them all the care and type-checking that it gives to built-in types.
Any program is a simulation of the system. But objet-oriented approach is not limited to building simulations. The use of OOP techniques can easily reduce a large set of problem to a simple solution. How?
One of the challenges of object-oriented programming is to create one-to-one mapping between the lements in the problem space and objects in the solution space.
All the requests that is the functions of an object or a certain type of object/class are defined by its interface, and the type is what determins the interface.