In this tutorial, we will learn about Java constructors/Constructor in java, their types, and how to use them.
Contents
What is a Constructor?
Constructor in Java is a block of code that is similar to a method. When a new instance of the class is created, it is called. Memory for the object is allocated in the memory when the constructor is called.
- It is a type of method that is used to initialise an object.
- At least one constructor is called every time an object is created with the new() keyword.
- If there is no constructor available in the class, it calls the default constructor. In this case, the Java compiler automatically provides a default constructor.
In Java, there are two kinds of constructors:
- Default constructor
- Parameterized constructor.
Default Constructor
We haven’t created any constructors in this case. As a result, the Java compiler generates the default constructors automatically. The default constructors sets the default values for any uninitialized instance variables.
| Type | Default Value |
|---|---|
| boolean | false |
| byte | 0 |
| short | 0 |
| int | 0 |
| long | 0L |
| char | \u0000 |
| float | 0.0f |
| double | 0.0d |
Example: In this example, we’re going to write a no-arg constructor for the Car class. It will be called when the object is created.
class Car{
// default constructor
Car() {
System.out.println("Car is running");
}
//main method
public static void main(String args[]){
//calling default constructor
Car b=new Car();
}
}
Output:
| Car is running |
Java Parameterized Constructor
Parameterized Constructor – A constructor is referred to as a Parameterized Constructor if it accepts a specific number of parameters. When using a parameterized constructor for a class, initial values must be provided as arguments or the compiler will report an error.
Example: In this example, we created a constructor for the Sample class with two parameters.
class Sample{
int id;
String name;
//parameterized constructor
Sample(int i,String n){
id = i;
name = n;
}
//method to display the values
void display()
{
System.out.println(id+" "+name);
}
public static void main(String args[]){
//creating objects and passing values
Sample x = new Sample(1,"Sagar");
Sample y = new Sample(1,"Hitesh");
//calling method to display the values of object
x.display();
y.display();
}
}
Output:
| 1 Sagar 2 Hitesh |
Constructor Overloading
Constructor overloading is a technique in Java that allows you to have multiple constructors with different parameter lists. They are organised in such a way that each constructor is responsible for a different task. The compiler distinguishes them based on the number of parameters in the list and their types.
Example:
class Student
{
private int studentId;
private String studentName;
private int studentAge;
Student()
{
//Default constructor
studentId = 1;
studentName = "Hitesh";
studentAge = 10;
}
Student(int num1, String str, int num2)
{
//Parameterized constructor
studentId = num1;
studentName = str;
studentAge = num2;
}
//Getter and setter methods
public int getStuID() {
return stuID;
}
public void setStuID(int studentId) {
this.studentId = studentId;
}
public String getStuName() {
return studentName;
}
public void setStuName(String studentName) {
this.studentName = studentName;
}
public int getStuAge() {
return studentAge;
}
public void setStuAge(int studentAge) {
this.studentAge = studentAge;
}
public static void main(String args[])
{
//The default constructor would be called during the creation of this object.
Student myobj = new Student();
System.out.println("Student Name is: "+myobj.getStuName());
System.out.println("Student Age is: "+myobj.getStuAge());
System.out.println("Student Id is: "+myobj.getStuID());
/*The parameterized would be called during the creation of this object.
* constructor StudentData(int, String, int)*/
Student myobj2 = new Student(22, "Sagar", 32);
System.out.println("Student Name is: "+myobj2.getStuName());
System.out.println("Student Age is: "+myobj2.getStuAge());
System.out.println("Student Id is: "+myobj2.getStuID());
}
}
Output:
| Student Name is: New Student Student Age is: 10 Student Id is: 1 Student Name is: Sagar Student Age is: 32 Student Id is: 22 |
Difference between method and constructor in Java
| Java Constructor | Java Method |
|---|---|
| A constructor is used to initialize an object’s state. | A method is used to expose an object’s behavior. |
| A return type is not permitted in a constructor | A return type is required for a method. |
| The constructor is called without being explicitly called. | The method is called directly. |
| If a class requires a constructor, the Java compiler provides a default constructor. | In any case, the compiler does not provide the method. |
If you want to know more about methods then refer to the Java Methods with Example.
Java Copy Constructor
In a Java class, a copy constructor creates an object by copying another object from the same Java class. This is useful when copying a complex object with multiple fields, or when making a deep copy of an existing object.
Example:
In this example, we’ll use the Java constructor to copy the values of one object to another.
class Student{
int id;
String name;
//constructor to initialize integer and string
Student(int i,String n){
id = i;
name = n;
}
//constructor to initialize another object
Student(Student s){
id = s.id;
name =s.name;
}
void display(){
System.out.println(id+" "+name);
}
public static void main(String args[]){
Student s1 = new Student(1,"Sagar");
Student s2 = new Student(s1);
s1.display();
s2.display();
}
}
| 1 Sagar 1 Sagar |
You might like:
Java Object and Java Class with Example
We hope that this article will assist you in understanding all about constructors in java. We have concentrated on making a basic, meaningful, and easy-to-learn guide to the concepts. Still, if you have any problems regarding this, please post them in the comment section, and we will be glad to assist you.
Pingback: Java Access Modifiers with Example - Developers Dome
Pingback: Java this Keyword with Example - Developers Dome
Pingback: Constructor Example in Java - Developers Dome