YourNote 101: OOP - zhamri/CSC584-Enterprise_Programming GitHub Wiki

Main concepts of OOP in Java

1. Class

A class is a blueprint for creating objects.

class Car {
    String brand;
    int speed;

    void drive() {
        System.out.println("The car is driving.");
    }
}

2. Object

An object is an instance of a class.

public class Main {
    public static void main(String[] args) {
        Car myCar = new Car();   // Creating object
        myCar.brand = "Toyota";
        myCar.speed = 120;
        myCar.drive();
    }
}

3. Encapsulation

  • Hiding data using private variables
  • Accessing them using getters and setters
class Person {
    private String name;

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

4. Inheritance

One class inherits properties of another using extends

class Animal {
    void sound() {
        System.out.println("Animal makes sound");
    }
}

class Dog extends Animal {
    void bark() {
        System.out.println("Dog barks");
    }
}

5. Polymorphism

Same method name, different behavior

Method Overloading

class MathOperation {
    int add(int a, int b) {
        return a + b;
    }

    double add(double a, double b) {
        return a + b;
    }
}

Method Overriding

class Animal {
    void sound() {
        System.out.println("Animal sound");
    }
}

class Cat extends Animal {
    @Override
    void sound() {
        System.out.println("Meow");
    }
}

6. Abstraction

  • Hiding implementation details
  • Achieved using abstract classes or interfaces

Abstract class example:

abstract class Shape {
    abstract void draw();
}

class Circle extends Shape {
    void draw() {
        System.out.println("Drawing circle");
    }
}

Interface example:

interface Animal {
    void sound();
}

class Cow implements Animal {
    public void sound() {
        System.out.println("Moo");
    }
}