> Why is the purpose of a constructor in Java escaping me?

Why is the purpose of a constructor in Java escaping me?

Posted at: 2014-12-18 
The reason you don't initialize values when declaring them for an Object is that you might not know or you could never know the possible values that are required or that will be used.

For example when you create a Scanner and ask for user input and assign that input to a String variable and that String is a random word that someone typed into their keyboard. It is impossible to know what they typed. If you initialized the String variable when making the program, and the user entered "AGJREISGA" and you said String word = "Hello". That would never be equivalent.

I know that the main purpose of a constructor is to initialize the instance(field) variables.

Now, I can't help but to ask myself, can't I just initialize them myself at the declaration? Some people say constructors put all the initializations in one place, but they are DECLARED in one block of code as well, so that makes no sense to me.

I know, that the default constructor is used to initialize classes/create objects. But I've been banging my head about the "custom" ones.

What is PRACTICAL purpose in real life? Is it that many objects of the same class can use them?