Java Constructor Parameters
Description
The constructors can also have parameters. Usually the parameters are used to set the initial states of the object.
Syntax
Syntax for Java Constructor Parameters
class ClassName{// w w w .j av a 2 s . com
ClassName(parameterType variable,parameterType2 variable2,...){ // constructor
...
}
}
Example
In the the following demo code Rectangle
class uses
the parameters, w
for width and h
for height,
from the constructors to initialize
its width and height.
class Rectangle {
double width;/*from w w w . ja v a 2 s . co m*/
double height;
Rectangle(double w, double h) {
width = w;
height = h;
}
double area() {
return width * height;
}
}
public class Main {
public static void main(String args[]) {
Rectangle mybox1 = new Rectangle(10, 20);
double area;
area = mybox1.area();
System.out.println("Area is " + area);
}
}
The output from this program is shown here:
Example 2
Just like methods in a class the constructors can not only accept primitive type parameters it can also have the object parameters. Object parameters contains more information and can help us initialize the class.
The following Rectangle
class has a constructor whose parameter is a Rectangle
class.
In this way we can initialize a rectangle by the data from another rectangle.
class Rectangle {
double width;/*w w w . jav a 2 s.c o m*/
double height;
Rectangle(Rectangle ob) { // pass object to constructor
width = ob.width;
height = ob.height;
}
Rectangle(double w, double h) {
width = w;
height = h;
}
// constructor used when no dimensions specified
Rectangle() {
width = -1; // use -1 to indicate
height = -1; // an uninitialized
}
// constructor used when cube is created
Rectangle(double len) {
width = height = len;
}
double area() {
return width * height;
}
}
public class Main {
public static void main(String args[]) {
Rectangle mybox1 = new Rectangle(10, 20);
Rectangle myclone = new Rectangle(mybox1);
double area;
// get volume of first box
area = mybox1.area();
System.out.println("Area of mybox1 is " + area);
// get volume of clone
area = myclone.area();
System.out.println("Area of clone is " + area);
}
}
The output: