Sobes.tech
Junior

Čo je to objektovo orientované programovanie (OOP) v Jave?

sobes.tech AI

Odpoveď od AI

Objektovo orientované programovanie v Jave je paradigma založená na koncepte "objektov", ktoré obsahujú údaje (vlastnosti) a metódy (akcie).

Hlavné princípy OOP v Jave:

  1. Zapúzdrenie: Skrytie údajov a metód vo vnútri objektu, ku ktorým je prístup iba cez určené rozhrania. To zabezpečuje bezpečnosť údajov a modularitu.
  2. Dedičstvo: Umožňuje vytváranie nových tried (potomkov) na základe existujúcich (rodičovských), dedí ich vlastnosti a metódy. To podporuje opätovné použitie kódu.
  3. Polymorfizmus: Umožňuje používanie objektov rôznych tried cez jedno rozhranie. To zabezpečuje flexibilitu a rozšíriteľnosť. Rozlišujeme polymorfizmus pri kompilácii (preťaženie metód) a pri behu (prepísanie metód).
  4. Abstrakcia: Vyčlenenie podstatných vlastností objektu a skrytie nepodstatných detailov. To pomáha zjednodušiť zložité systémy.

Príklad triedy v Jave:

public class Car {
    private String brand; // Zapúzdrená vlastnosť
    private String model;
    private int year;

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

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

    // Gettery a settery (pre prístup k súkromným vlastnostiam)
    public String getBrand() {
        return brand;
    }

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

Príklad použitia princípov OOP:

// Dedičstvo
public class ElectricCar extends Car {
    private int batteryCapacity;

    public ElectricCar(String brand, String model, int year, int batteryCapacity) {
        super(brand, model, year); // Volanie konštruktora rodičovskej triedy
        this.batteryCapacity = batteryCapacity;
    }

    @Override // Polymorfizmus (prepísanie metódy)
    public void displayInfo() {
        super.displayInfo(); // Volanie metódy rodičovskej triedy
        System.out.println("Battery Capacity: " + batteryCapacity + " kWh");
    }
}

// Použitie objektov
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(); // Polymorfizmus v akcii
    }
}

Výhody OOP:

  • Opakovanie kódu: Prostredníctvom dedičstva.
  • Jednoduchá údržba: Zmeny sa týkajú iba konkrétnych objektov alebo tried.
  • Fleksibilita a rozšíriteľnosť: Vďaka polymorfizmu.
  • Lepšia organizácia kódu: Rozdelenie systému na moduly (objekty).
  • Bezpečnosť údajov: Prostredníctvom enkapsulácie.