1.Everything is an object.
2.A program is a bunch of objects telling each other what to do by sending messages.
3.Each object has its own memory made up of other objects
4.Every object has a type.
5.All objects of a particular type can receive the same messages.
one of the challenges of object-oriented programming is to create a one-to-one mapping between the elements in the problem space and objects in the solution space.