6.3 Constructors

A constructor is a member method that automatically initializes an object immediately upon creation. It has the same name as the class with no return type. Let’s defining a simple constructor of Recangle class as shown here:

   public Rectangle()
   {
      length = 0.0;
      width  = 0.0;
   }

When we write following statment to create object constructor automatically invoked and Rectangle object automatically intiliaze with value 0;

  Rectangle rectangle1 = new Rectangle();

A constructor can have parameters, this version of constructor is called parameterized constructor. Following code segment define a parameterized constructor.

   public Rectangle(double l, double w)
   {
      length = l;
      width  = w;
   }

Paramterized constructor intializes object with given set of values when object is created, look at following statement :

  Rectangle rectangle2 = new Rectangle(3.5, 4.2);

A class can have multiple constructors, compiler differentiate on the basis of parameter passed. This is called overloading of constructor.

Here is complete example :

/**
 * A Rectangle class with constructors
 */
public class Rectangle
{
   private double length;
   private double width;

   /**
    * Constructor
    */
   public Rectangle()
   {
      length = 0.0;
      width  = 0.0;
   }

   /**
    * Overloaded constructor
    */
   public Rectangle(double l, double w)
   {
      length = l;
      width  = w;
   }

   /**
    * The set method accepts two arguments
    * which are stored in the length and width fields
    */
   public void set(double l, double w)
   {
      length = l;
      width  = w;
   }

   /**
    * The getArea method computes and returns the area
    */
   public double getArea()
   {
      return length * width;
   }

   /**
    * The getPerimeter method computes and returns the perimeter
    */
   public double getPerimeter()
   {
      return 2 * (length + width);
   }
}

(RectangleDemo. Java)

/**
 * This program tests Rectangle class
 */
public class RectangleDemo
{
   public static void main(String[] args)
   {
      // Create a Rectangle object with default values
      Rectangle rectangle1 = new Rectangle();

      System.out.println("Area of Rectangle is "
                         + rectangle1.getArea());
      System.out.println("Perimeter of Rectangle is "
                         + rectangle1.getPerimeter());

      // Create a Rectangle object with given set of values
      Rectangle rectangle2 = new Rectangle(3.5, 4.2);

      System.out.println("Area of Rectangle is "
                         + rectangle2.getArea());
      System.out.println("Perimeter of Rectangle is "
                         + rectangle2.getPerimeter());
   }
}

Output :

Area of Rectangle is 0.0
Perimeter of Rectangle is 0.0
Area of Rectangle is 14.7
Perimeter of Rectangle is 15.4