Sobes.tech
Junior

Kas yra objektinis programavimas (OOP) Java kalboje?

sobes.tech AI

Atsakymas iš AI

Objektinio programavimo Java kalboje paradigma yra pagrįsta "objektų" koncepcija, kurie saugo duomenis (savybes) ir metodus (veiksmus).

Pagrindiniai OOP principai Java:

  1. Uždarymas: Duomenų ir metodų slėpimas objekto viduje, prie kurių prieiga yra tik per tam tikrus sąsajos metodus. Tai užtikrina duomenų saugumą ir modulį.
  2. Paveldėjimas: Leidžia kurti naujus klases (palikuonis) remiantis esamomis (tėvų), paveldint jų savybes ir metodus. Tai skatina kodo pakartotinį naudojimą.
  3. Polimorfizmas: Leidžia naudoti skirtingų klasių objektus per tą patį sąsają. Tai užtikrina lankstumą ir plėtrą. Polimorfizmas skirstomas į kompiliacijos laiką (metodų perkrėtimą) ir vykdymo laiką (metodų perrašymą).
  4. Abstrakcija: Svarbių objekto savybių išskyrimas ir nereikšmingų detalių slėpimas. Tai padeda supaprastinti sudėtingas sistemas.

Java klasės pavyzdys:

public class Car {
    private String brand; // Uždaryta savybė
    private String model;
    private int year;

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

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

    // Geteriai ir seteriai
    public String getBrand() {
        return brand;
    }

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

Naudojimo pavyzdys:

// Paveldėjimas
public class ElectricCar extends Car {
    private int batteryCapacity;

    public ElectricCar(String brand, String model, int year, int batteryCapacity) {
        super(brand, model, year); // Tėvų klasės konstruktoriaus iškvietimas
        this.batteryCapacity = batteryCapacity;
    }

    @Override // Polimorfizmas (metodo perrašymas)
    public void displayInfo() {
        super.displayInfo(); // Tėvų klasės metodo iškvietimas
        System.out.println("Battery Capacity: " + batteryCapacity + " kWh");
    }
}

// Objekto naudojimas
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(); // Polimorfizmas veikia
    }
}

Privalumai:

  • Kodo pakartotinis naudojimas: per paveldėjimą.
  • Lengva prižiūrėti: pakeitimai taikomi tik konkretiems objektams ar klasėms.
  • Lankstumas ir plėtra: dėka polimorfizmo.
  • Geresnė kodo organizacija: sistemą galima suskirstyti į modulius (objektus).
  • Duomenų saugumas: per inkapsuliaciją.