Constructor
🛠️ What is a Constructor in Java?
A constructor is a special block of code that:
- Has the same name as the class
-
No return type (not even
void) - Gets called automatically when you create an object using
new
class Student {
Student() {
System.out.println("Object created!");
}
}❓ Why Constructor?
✅ To initialize objects:
When you create a new object, Java needs a way to assign initial values — that’s where constructors come in.
✅ Without constructor:
Student s = new Student();
s.name = "Vignesh"; // Manual setup✅ With constructor:
Student s = new Student("Vignesh"); // Clean and quick🕒 When to Use Constructor?
| Use Case | Use Constructor? |
|---|---|
| Initializing values | ✅ Yes |
| Creating multiple objects with different data | ✅ Yes |
| Want to set default setup for every object | ✅ Yes |
| No initialization needed | ❌ Can skip constructor |
🚫 Why NOT to Use Constructor?
- If your class only has static methods (like utility classes)
- If you're using
setters()or factory methods - If you want to use frameworks (like Spring), where object creation is automatic
📍 Where to Use Constructor?
- In model classes (
User,Product,Book) - In real-time apps like login system, e-commerce, etc.
- In OOP-based programs
⚡ Why ONLY Non-Static Constructors in Java?
👉 Because constructors are meant to create objects.
🤔 Static = belongs to class
But constructor = used to create instances (objects)
So it makes no sense to make constructors static.
You need an object to call non-static methods — constructor is the very step that creates that object!
🧪 Why NO Return Type in Constructor?
Because:
- Java knows automatically it has to return the object of that class.
- If you add a return type, Java will treat it as a normal method, NOT a constructor.
🔥 Example:
public class Demo {
Demo() { } // ✅ Constructor
void Demo() { } // ❌ This is a method (not a constructor!)
}🧠 Summary (Quick Table):
| Feature | Why |
|---|---|
| Non-static | Because constructors create objects, and static doesn’t need objects |
| No return type | Java returns object implicitly. Return type would make it a normal method |
| Same name as class | So Java knows this is a constructor |
| Used when | You want to initialize object values |
| Not used when | You’re only using static methods, or initialization isn’t required |