To make sure things are 'set up' right in your object. Each time an object is created, one of it's constructors is called. You can enforce data integrity, such as a person's age being between 0 and 120. You can use it to open connections to files/databases/whatever. you can use it to send messages saying 'such and such an object was created.
Basically, anything that has to be done before the object is 'ready' is done there.
There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors