Sobes.tech
Junior

Šta je objektno-orijentisano programiranje (OOP) u Javi?

sobes.tech АИ

Одговор од АИ

Objektno-orijentisano programiranje u Javi je paradigma zasnovana na konceptu "objekata" koji sadrže podatke (svojstva) i metode (akcije).

Glavni principi OOP u Javi:

  1. Enkapsulacija: Skrivanje podataka i metoda unutar objekta, do kojih se pristupa samo putem određenih interfejsa. To obezbeđuje sigurnost podataka i modularnost.
  2. Nasleđivanje: Omogućava kreiranje novih klasa (potomaka) na osnovu postojećih (roditeljskih), nasleđujući njihove osobine i metode. To doprinosi ponovnoj upotrebi koda.
  3. Polimorfizam: Omogućava korišćenje objekata različitih klasa putem istog interfejsa. To obezbeđuje fleksibilnost i proširivost. Razlikuju se polimorfizam u vreme kompilacije (preopterećenje metoda) i u vreme izvršenja (prepisivanje metoda).
  4. Apstrakcija: Isticanje suštinskih karakteristika objekta i skrivanje nevažnih detalja. To pomaže u pojednostavljivanju složenih sistema.

Primer klase u Javi:

public class Car {
    private String brand; // Enkapsulovana svojstvo
    private String model;
    private int year;

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

    public void displayInfo() { // Metod
        System.out.println("Brand: " + brand + ", Model: " + model + ", Year: " + year);
    }

    // Getteri i setteri (za pristup privatnim svojstvima)
    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }
}

Primer korišćenja principa OOP:

// Nasleđivanje
public class ElectricCar extends Car {
    private int batteryCapacity;

    public ElectricCar(String brand, String model, int year, int batteryCapacity) {
        super(brand, model, year); // Pozivanje konstruktora roditeljskog razreda
        this.batteryCapacity = batteryCapacity;
    }

    @Override // Polimorfizam (prepisivanje metode)
    public void displayInfo() {
        super.displayInfo(); // Pozivanje metode roditeljskog razreda
        System.out.println("Battery Capacity: " + batteryCapacity + " kWh");
    }
}

// Korišćenje objekata
public class Main {
    public static void main(String[] args) {
        Car myCar = new Car("Toyota", "Camry", 2020);
        Car myElectricCar = new ElectricCar("Tesla", "Model 3", 2022, 75);

        myCar.displayInfo();
        myElectricCar.displayInfo(); // Polimorfizam u akciji
    }
}

Prednosti OOP:

  • Ponovna upotreba koda: Kroz nasleđivanje.
  • Laka održivost: Promene se odnose samo na konkretne objekte ili klase.
  • Fleksibilnost i proširivost: Zahvaljujući polimorfizmu.
  • Bolja organizacija koda: Podela sistema na module (objekte).
  • Sigurnost podataka: Kroz enkapsulaciju.