Hey americanxo I am new to programming as well but I think I can help you with this . You can have as many constructors in a class as you want. The first constructor (parameter less) which you have declared is called the 'default constructor' and it holds a lot of importance. In case you donot define any constructor yourself the compiler will provide the default constructor but in case you have provided a constructor yourself than you have to provide it...you just can't go about there defining a Parameterised constructor without defining a Non parameterised default constructor , the system will give an error in this case.
2) No it doesnot make any difference. For eg. You can create a class object without passing any value and then you can set the name whichever you want using the Setname function.