1 --> Your program itself will provide services to the user, and it will accomplish this by using the services offered by other objects. Your goal is to produce a set of objects to provide the ideal services to solve your problems.
2 --> It can look like a program is just a bunch of objects with methods that take other objects as arguments and send messages to those other objects.
3 --> The variables(include static variables and fields) are initialized before any methods can be called—even the constructor.