Since Java admits overloading of methods, and a constructor is a special case of a method, it is possible to define several constructors for a class.
For example, we can define a constructor that sets to null the residence of persons that are being created.
// constructor name public Person(String n) { name = n; residence = null; }
We show some examples of how to use the constructors:
Person p1 = new Person("John Smith"); // calling constructor name Person p2 = new Person("Tom Jones", "London"); // calling constructor name-residence System.out.println(p1.getName()); // prints "John Smith" System.out.println(p2.getName()); // prints "Tom Jones"
When we create an object by means of a new operation, the compiler determines which constructor to use based on the number and the types of parameters specified in the new operation. The run-time support can then call the chosen constructor to create the object.