Java Tutorial Java Advanced Java References

Java - Constructors



A constructor is a special method of a class which automatically executed when a new object of the class is created. It allows the class to initialize object attributes and allocate memory.

The constructor function is declared just like a regular method except the class name and method name should be same without any return type.

When a constructor is not specified in a class, compiler generates a default constructor and inserts it into the code. However, it does not initialize object attributes.

Syntax

//Creating class constructor
className(parameters) {
  statements;
}

Example:

In the example below, a class called Circle is created. A constructor is also created which is used to initialize the radius attribute of the object.

public class Circle {
  //class attribute
  int radius;
  //class constructor
  public Circle(int x) {
    radius = x;
  }
  //class method
  public double area() {
    return 22/7.0*radius*radius;
  }

  public static void main(String[] args) {
    Circle Cir1 = new Circle(5);
    Circle Cir2 = new Circle(10);

    System.out.println(Cir1.area());
    System.out.println(Cir2.area());
  }
}

The output of the above code will be:

78.57142857142857
314.2857142857143

Constructor Overloading

Like Methods, a constructors can also be overloaded in Java. With constructor overloading feature in Java, two or more constructors can be created in the same class with different definitions like different number and types of parameters. The compiler automatically calls the constructor which matches the argument passed while creating the object.

Example:

In this example two constructors are created. The first constructor (default constructor) takes no parameters and the second constructor takes one parameter to initialize an object of the class Circle.

In the main method, two objects of class Circle are created: Cir1 and Cir2. Cir1 uses default constructor to initialize the object while the Cir2 uses the constructor that takes one parameter to initialize the object.

public class Circle {
  //class attribute
  int radius;
  //class constructor without parameter
  public Circle() {
    radius = 1;
  }  
  //class constructor with one parameter
  public Circle(int x) {
    radius = x;
  }
  //class method
  public double area() {
    return 22/7.0*radius*radius;
  }

  public static void main(String[] args) {
    Circle Cir1 = new Circle();
    Circle Cir2 = new Circle(10);

    System.out.println(Cir1.area());
    System.out.println(Cir2.area());
  }
}

The output of the above code will be:

3.142857142857143
314.2857142857143

A constructor is called default constructor, if it takes no arguments to initialize the object.