|10. OOP — Classes & Inheritance
Chapter 10Java Tutorial~1 min read

OOP — Classes & Inheritance

Object Oriented Programming

Java पूर्णपणे object-oriented आहे. Class म्हणजे blueprint, Object म्हणजे त्याचा instance. OOP चे 4 pillars: Encapsulation, Inheritance, Polymorphism, Abstraction.

Class आणि Object

Class definition आणि object creation

java
public class Student {
    // Instance variables (fields)
    private String name;  // private — encapsulation
    private int marks;

    // Constructor — object बनवताना call होतो
    public Student(String name, int marks) {
        this.name = name;   // this = current object
        this.marks = marks;
    }

    // Getter methods
    public String getName()  { return name; }
    public int    getMarks() { return marks; }

    // Setter methods
    public void setMarks(int marks) {
        if (marks >= 0 && marks <= 100)
            this.marks = marks;
    }

    // Method
    public String getResult() {
        return marks >= 40 ? "Pass ✅" : "Fail ❌";
    }

    // toString — object print केल्यावर
    @Override
    public String toString() {
        return name + " — " + marks + " (" + getResult() + ")";
    }
}

// Main class — objects वापरणे
class Main {
    public static void main(String[] args) {
        Student s1 = new Student("Rahul", 85);
        Student s2 = new Student("Priya", 35);

        System.out.println(s1);  // Rahul — 85 (Pass ✅)
        System.out.println(s2);  // Priya — 35 (Fail ❌)

        s1.setMarks(92);
        System.out.println(s1.getName() + ": " + s1.getMarks());
    }
}

Inheritance — extends

Parent-Child class relationship

java
// Parent class
class Animal {
    String name;

    Animal(String name) {
        this.name = name;
    }

    void speak() {
        System.out.println(name + " काहीतरी आवाज करतो...");
    }

    void eat() {
        System.out.println(name + " खातो.");
    }
}

// Child class — Animal extend करतो
class Dog extends Animal {
    String breed;

    Dog(String name, String breed) {
        super(name);   // Parent constructor call
        this.breed = breed;
    }

    @Override           // Parent method override करतो
    void speak() {
        System.out.println(name + " भुंकतो: Woof! Woof! 🐕");
    }
}

class Cat extends Animal {
    Cat(String name) { super(name); }

    @Override
    void speak() {
        System.out.println(name + " म्हणतो: Meow! 🐱");
    }
}

// वापरणे
Dog d = new Dog("Bruno", "Labrador");
Cat c = new Cat("Whiskers");

d.speak();  // Bruno भुंकतो: Woof! Woof! 🐕
d.eat();    // Bruno खातो. — inherited from Animal
c.speak();  // Whiskers म्हणतो: Meow! 🐱

Access Modifiers

  • public — सगळ्यांना accessible
  • private — फक्त same class आत — getters/setters द्वारे access
  • protected — same class + subclasses + same package
  • default (no modifier) — same package मध्ये

Key Points — लक्षात ठेवा

  • class Name { fields; constructor; methods; }
  • new ClassName(args) — object बनवतो
  • this — current object reference
  • extends — inheritance, super() — parent constructor
  • @Override — parent method overriding
0/11 chapters पूर्ण