1.) To initialize the private variables in a class.
2.) Also to ensure or prevent user from creating instance of a class. Similar to singleton pattern in which - class object will be created internally and passed in through a Public static property etc. So developer will not be able to create instance by calling default constructor.