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:
- Kapseldus: Andmete ja meetodite varjamine objekti sees, millele pääseb ligi ainult teatud liideste kaudu. See tagab andmete turvalisuse ja modulaarse ülesehituse.
- Pärimine: Võimaldab luua uusi klasse (järglasi) olemasolevate (vanemate) klasside põhjal, pärides nende omadused ja meetodid. See soodustab koodi taaskasutust.
- 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).
- 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.