Constructors in Java

Constructors
A constructor initializes an object immediately upon creation. It has the same name as the class in which it resides and is syntactically similar to a method. Once defined, the constructor is automatically called immediately after the object is created, before the new operator completes. Constructors look a little strange because they have no return type, not even void. This is because the implicit return type of a class’ constructor is the class type itself. It is the constructor’s job to initialize the internal state of an object so that the code creating an instance will have a fully initialized, usable object immediately.

EXAMPLE:
/* Here, Box uses a constructor to initialize the dimensions of a box.
*/
class Box {
double width;
double height;
double depth;


// This is the constructor for Box.

Box() {
System.out.println("Constructing Box");
width = 10;
height = 10;
depth = 10;
}

// compute and return volume

double volume() {
return width * height * depth;
}
}
class BoxDemo6 {
public static void main(String args[]) {

// declare, allocate, and initialize Box objects

Box mybox1 = new Box();
Box mybox2 = new Box();
double vol;

// get volume of first box

vol = mybox1.volume();
System.out.println("Volume is " + vol);

// get volume of second box

vol = mybox2.volume();
System.out.println("Volume is " + vol);
}
}

OUTPUT:
Constructing Box
Constructing Box
Volume is 1000.0
Volume is 1000.0

Parameterized Constructors
While the Box( ) constructor in the preceding example does initialize a Box object, it is not very useful—all boxes have the same dimensions. What is needed is a way to construct Box objects of various dimensions. The easy solution is to add parameters to the constructor. As you can probably guess, this makes them much more useful. For example, the following version of Box defines a parameterized constructor which sets the dimensions of a box as specified by those parameters. Pay special attention to how Box objects are created.

EXAMPLE:
/* Here, Box uses a parameterized constructor to initialize the dimensions of a box.
*/

class Box {
double width;
double height;
double depth;
THE JAVA LANGUAGE
// This is the constructor for Box.

Box(double w, double h, double d) {
width = w;
height = h;
depth = d;
}

// compute and return volume

double volume() {
return width * height * depth;
}
}
class BoxDemo7 {
public static void main(String args[]) {

// declare, allocate, and initialize Box objects

Box mybox1 = new Box(10, 20, 15);
Box mybox2 = new Box(3, 6, 9);
double vol;

// get volume of first box

vol = mybox1.volume();
System.out.println("Volume is " + vol);

// get volume of second box

vol = mybox2.volume();
System.out.println("Volume is " + vol);
}
}

The output from this program is shown here:
Volume is 3000.0
Volume is 162.0

No comments:

Post a Comment

Please leave your valuable comments here...