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:
- 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.
- 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.
- 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).
- 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.