Sobes.tech
Junior

Mis on objektorienteeritud programmeerimine (OOP) Java-s?

sobes.tech AI

Vastus AI-lt

Objektipõhine programmeerimine Java-s on paradigma, mis põhineb "objektide" kontseptsioonil, mis sisaldavad andmeid (omadused) ja meetodeid (tegevused).

Java OOP põhiprintsiibid:

  1. Kapseldus: Andmete ja meetodite varjamine objekti sees, millele pääseb ligi ainult teatud liideste kaudu. See tagab andmete turvalisuse ja modulaarse ülesehituse.
  2. Pärimine: Võimaldab luua uusi klasse (järglasi) olemasolevate (vanemate) klasside põhjal, pärides nende omadused ja meetodid. See soodustab koodi taaskasutust.
  3. Polümorfism: Võimaldab kasutada erinevate klasside objekte sama liidese kaudu. See tagab paindlikkuse ja laiendatavuse. Polümorfism jaguneb kompileerimise ajal (meetodite ülekoormus) ja käivitamise ajal (meetodite ülekirjutamine).
  4. Abstraktsioon: Oluliste objekti omaduste eristamine ja mittevajalike detailide varjamine. See aitab lihtsustada keerulisi süsteeme.

Java klassi näide:

public class Car {
    private String brand; // Inkapsuleeritud omadus
    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() { // Meetod
        System.out.println("Brand: " + brand + ", Model: " + model + ", Year: " + year);
    }

    // Getterid ja setterid
    public String getBrand() {
        return brand;
    }

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

Kasutusnäide:

// Pärimine
public class ElectricCar extends Car {
    private int batteryCapacity;

    public ElectricCar(String brand, String model, int year, int batteryCapacity) {
        super(brand, model, year); // Vanema klassi konstruktor
        this.batteryCapacity = batteryCapacity;
    }

    @Override // Polümorfism (meetodi ülekirjutamine)
    public void displayInfo() {
        super.displayInfo(); // Vanema klassi meetodi kutsumine
        System.out.println("Battery Capacity: " + batteryCapacity + " kWh");
    }
}

// Objekti kasutamine
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(); // Polümorfism tegevuses
    }
}

OOP eelised:

  • Koodi taaskasutus: pärimise kaudu.
  • Lihtne hooldus: muudatused mõjutavad ainult konkreetseid objekte või klasse.
  • Paindlikkus ja laiendatavus: polümorfismi tõttu.
  • Parema koodi organiseerimine: süsteemi jagamine mooduliteks (objektideks).
  • Andmete turvalisus: inkapsulatsiooni kaudu.