Java Constructors and Constructor Overloading - Advanced

What is a Constructor?

Constructor ek special method hai jo object banate waqt automatically call hota hai taaki object ki initial state set ho sake.

Key points:

class Example {
  int x;
  Example() {
    x = 10;
  }
}

Example e = new Example();
System.out.println(e.x);  // Output: 10

Parameterized Constructors

Constructor parameters accept kar sakta hai taaki object creation par initial values assign ki ja sakein.

class Person {
  String name;
  int age;

  Person(String name, int age) {
    this.name = name;
    this.age = age;
  }
}

Constructor Overloading

Ek hi class mein multiple constructors define kar sakte hain with different parameter lists. Compiler automatically matching constructor call karta hai.

class Car {
  String model;
  int year;

  Car() {
    model = "Unknown";
    year = 0;
  }

  Car(String model) {
    this.model = model;
    year = 0;
  }

  Car(String model, int year) {
    this.model = model;
    this.year = year;
  }
}

Constructor Chaining

Constructor ek dusre ko this() ke zariye call kar sakte hain jisse code reuse aur initialization efficiency badhta hai.

class Car {
  String model;
  int year;

  Car() {
    this("Unknown", 0);
  }

  Car(String model) {
    this(model, 0);
  }

  Car(String model, int year) {
    this.model = model;
    this.year = year;
  }
}

Summary

Constructors Java mein object initialization ke liye hota hai. Constructor overloading aur chaining se flexible aur reusable code likhne mein madad milti hai.