As the purpose of using final keyword before any class name, mqy be: purpose 1. to make that class not extendiable further, or purpose 2. to make that class immutable, by removing setter method from it.
My question is: If I don't want to use 'final' keyword before any class name; can I achieve the above purposepurpose 1 by declaring its constructor as private ?
You can't make a class immutable by putting final before the class name. Yes, you can prevent inheritance from a class by making all its constructors private. But a user will see there is no "final" before the class name, and think it is possible to inherit from that class, so it is a bad idea to miss "final" out in that instance.