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()); } }