When you start learning Object-Oriented Programming (OOP) in Java, one of the first important concepts you’ll come across is the constructor. Constructors play a key role in object creation and initialization. Let’s understand what they are, why they’re used, and how they work with examples.
๐น What is a Constructor in Java?
A constructor in Java is a special method that is called automatically when an object of a class is created. Its main purpose is to initialize the object — that is, to assign values to the object’s variables when it is created.
Syntax:
class ClassName {
ClassName() {
// constructor body
}
}
Example:
class Student {
int id;
String name;
// Constructor
Student() {
id = 1;
name = "Shivam";
}
void display() {
System.out.println(id + " " + name);
}
}
public class Main {
public static void main(String[] args) {
Student s1 = new Student(); // constructor is called here
s1.display();
}
}
Output:
1 Shivam
๐น Features of a Constructor
-
The constructor has the same name as the class.
-
It does not have a return type, not even
void. -
It is automatically invoked when an object is created.
-
If no constructor is defined, Java provides a default constructor automatically.
๐น Types of Constructors in Java
There are three types of constructors in Java:
1. Default Constructor
A default constructor is provided by Java if no other constructor is defined in the class. It initializes the object with default values (like 0, null, or false).
Example:
class Demo {
int a;
String b;
void show() {
System.out.println(a + " " + b);
}
public static void main(String[] args) {
Demo d = new Demo(); // default constructor is called
d.show();
}
}
Output:
0 null
2. Parameterized Constructor
A parameterized constructor takes arguments to assign custom values when creating an object.
Example:
class Student {
int id;
String name;
Student(int i, String n) {
id = i;
name = n;
}
void display() {
System.out.println(id + " " + name);
}
public static void main(String[] args) {
Student s1 = new Student(101, "Amit");
Student s2 = new Student(102, "Ravi");
s1.display();
s2.display();
}
}
Output:
101 Amit
102 Ravi
3. Copy Constructor (User-Defined)
Java doesn’t provide a built-in copy constructor like C++, but we can create one manually to copy the values of one object into another.
Example:
class Student {
int id;
String name;
Student(int i, String n) {
id = i;
name = n;
}
// Copy constructor
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(101, "Rahul");
Student s2 = new Student(s1); // calling copy constructor
s2.display();
}
}
Output:
101 Rahul
๐น Difference Between Constructor and Method
| Feature | Constructor | Method |
|---|---|---|
| Purpose | Initializes an object | Performs operations |
| Name | Same as class | Can have any name |
| Return type | No return type | Must have a return type |
| Called | Automatically when object is created | Manually by calling it |
๐น Why Use Constructors in Java?
-
To initialize objects automatically.
-
To reduce repetitive code.
-
To make object creation more flexible (through parameters).
-
To improve readability and maintainability of the code.
✅ Conclusion
Constructors are a fundamental part of object-oriented programming in Java. They simplify object initialization, improve code structure, and make your programs more efficient. By mastering constructors — default, parameterized, and copy — you take an important step toward becoming a proficient Java developer.
Comments
Post a Comment