In this article we will discuss need and usage details of constructors in Java.

What is a Constructor ?

Constructor is a member function of the class that is used to initialize a newly constructed object i.e. initializing the member variables of object.

It has the same name as of the class.

Why do we need Constructors ?

Whenever we create an object in Object Oriented Methodology, we first need initialize its member variables. For example, we have a class Game with name and level as its member variables. Now suppose we created an object of this class Game, but forgot to initialize it. In that case its name and levels for this object will be garbage and will give undesired result when we call other member functions that uses them.

As initialization is must for an object before using it, therefore in Java language support for Constructors has been added.

Whenever we create a new object in Java, first of all its Constructor is called to initialize its value.

 

For example, we have a class Game, lets create an object of it,

Before this new object is assigned to reference obj, its constructor will be called internally.

Lets see the complete example,

Output:

Game::Default Constructor
Default Name::1

Constructors are of 2 Types

1.) Default Constructor:

Constructor that take zero argument is called Default Constructor. In the above example we have defined a default Constructor i.e.

 

2.) Parameterized Constructors:

Constructor that take arguments are called parameterized Constructors. i.e.

 

Lets add this in to the above class i.e.

Output:

Game::Default Constructor
Default Name::1
Game::parameterized Constructor
ABC::3

Return Type of Constructors

As Constructors are called internally at the time of object creation. So, nobody knows what value to expect in return from a Constructor and what to do with it. Therefore Constructors don’t return any value.

Constructor Overloading

Overloading a member function means defining different member functions with same but different argument list.

Constructors can be overloaded too i.e. defining different parameterized constructors will result in constructor overloading. Lets add a overloaded constructor in above class i.e.

Complete working code is as follows,

 

Click Here to Subscribe for more Articles / Tutorials like this.