Java Classes and Objects - Advanced Concepts

Classes: Components and Features

Advanced Object Creation and Usage

public class Car {
    private String model;
    private int year;
    
    // Constructor
    public Car(String model, int year) {
        this.model = model;
        this.year = year;
    }
    
    // Getter and Setter (Encapsulation)
    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }
    
    public int getYear() {
        return year;
    }

    public void setYear(int year) {
        this.year = year;
    }
    
    // Behavior method
    public void display() {
        System.out.println("Model: " + model + ", Year: " + year);
    }
}

public class Main {
    public static void main(String[] args) {
        Car car1 = new Car("Toyota", 2020);
        car1.display();
        
        car1.setYear(2021);
        System.out.println("Updated year: " + car1.getYear());
    }
}

Multiple Objects and References

Ek class se kayi objects banaye ja sakte hain, alag alag references se. Har object apna unique state rakhta hai.

Car carA = new Car("Honda", 2018);
Car carB = new Car("Ford", 2019);

carA.display();  // Honda 2018
carB.display();  // Ford 2019

The this Keyword

this current object ko refer karta hai. Ye ambiguity door karta hai jab instance variable aur local variables ka naam same hota hai.

public void setModel(String model) {
    this.model = model;  // 'this.model' instance variable, 'model' parameter
}

Constructor Overloading

Ek class me multiple constructors banaye ja sakte hain alag alag parameters ke saath, jise constructor overloading kehte hain.

public class Car {
    private String model;
    private int year;

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

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

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

Summary

Classes aur objects Java ke powerful tools hain jo real-world cheezon ko model karte hain. Inka accha use code ko reusable, modular aur maintainable banaata hai.