Java
In this tutorial we will learn about constructor of a class in Java programming language.
So far we have learned how to create class, how to add member variables inside a class and how to add methods in a class.
Now lets talk about constructor.
A constructor is a special method inside a class that has the exact name like the class and it helps to initialise the object of the class.
Constructor has no return type, not even void. And the implicit return type of the constructor is the class type itself.
void
If we don't explicitly add a constructor to a class then Java compiler adds a default constructor to the class.
class NameOfTheClass { // some member variables // constructor NameOfTheClass() { // some code goes here... } // some methods of the class }
In the following example we are creating a Happy class having a constructor that prints a message when the object of the class is created.
class Happy { // constructor Happy() { System.out.println("Hello from the Happy constructor."); } } // Our main class class Example { public static void main(String[] args) { Happy obj = new Happy(); } }
Output:
Hello from the Happy constructor.
class NameOfTheClass { // constructor with parameters NameOfTheClass(list_of_params) { // some code... } }
In the following example we modified the above Happy class to take parameter.
class Happy { // constructor Happy(boolean isHappy) { if (isHappy == true) { System.out.println("I am happy :)"); } else { System.out.println("I am sad :("); } } } // Our main class class Example { public static void main(String[] args) { // code is not working... boolean amIHappy = false; System.out.println("First run: when code is not working..."); Happy obj = new Happy(amIHappy); // after sometime... code is working... System.out.println("After sometime second run: when code is working..."); amIHappy = true; Happy obj2 = new Happy(amIHappy); } }
First run: when code is not working... I am sad :( After sometime second run: when code is working... I am happy :)
So, in the above code we have created the constructor Happy that takes an argument.
Happy
We are then instantiating an object of the Happy class and passing an arugment amIHappy of boolean type.
amIHappy
boolean
In the following example we will modify the PackagingBox class that we have been working on in the previous tutorials. We will be initialising the object using constructor.
PackagingBox
/** * The PackagingBox Class */ class PackagingBox { // member variables private double length; private double breadth; private double height; public double volume; double weight; double price; // constructor PackagingBox(double length, double breadth, double height, double weight, double price) { // we are setting the length, breadth, height, weight, price of the box this.length = length; this.breadth = breadth; this.height = height; this.volume = volume; this.weight = weight; this.price = price; // compute the volume this.computeVolume(); } // methods //---- get and set length public void setLength(double length) { this.length = length; } public double getLength() { return this.length; } //---- get and set breadth public void setBreadth(double breadth) { this.breadth = breadth; } public double getBreadth() { return this.breadth; } //---- get and set height public void setHeight(double height) { this.height = height; } public double getHeight() { return this.height; } //---- get and set weight public void setWeight(double weight) { this.weight = weight; } public double getWeight() { return this.weight; } //---- get and set price public void setPrice(double price) { this.price = price; } public double getPrice() { return this.price; } //---- compute and get volume public void computeVolume() { this.volume = this.length * this.breadth * this.height; } public double getVolume() { return this.volume; } } /** * The main class. */ class ObjectExample { public static void main(String[] args) { // creating an object of the class PackagingBox myBox = new PackagingBox(10, 20, 30, 120, 299); // get the values System.out.println("Dimension of the box:"); System.out.println("Length: " + myBox.getLength()); System.out.println("Breadth: " + myBox.getBreadth()); System.out.println("Height: " + myBox.getHeight()); System.out.println("Weight, Volume and Price of the box:"); System.out.println("Weight: " + myBox.getWeight()); System.out.println("Volume: " + myBox.getVolume()); System.out.println("Price: " + myBox.getPrice()); } }
Dimension of the box: Length: 10.0 Breadth: 20.0 Height: 30.0 Weight, Volume and Price of the box: Weight: 120.0 Volume: 6000.0 Price: 299.0